【发布时间】:2012-10-22 16:29:27
【问题描述】:
我想从我动态创建的 URL 中删除“%252F”。
我有一个 php 文件,它使用 %2F 而不是 / 创建链接。
然后链接在 URL 栏中表示为 %252F 而不是 /,这会导致一些问题。
我试图通过 .htaccess 文件实现的目标是将所有 %2F 重定向到 / 或将所有 %252F 重命名为 /,因为我无法更改创建链接的 php 代码。
这是我的 .htaccess
RewriteEngine on
Options +SymlinksIfOwnerMatch
RewriteBase /
RewriteCond %{HTTP_HOST} subdomain.mydomain.com
RewriteCond %{REQUEST_URI} (.*)/style.css [OR]
RewriteCond %{REQUEST_URI} (.*)/script.js [OR]
RewriteCond %{REQUEST_URI} (.*)/logo.png
RewriteRule (.*) http://www.mydomain.com%{REQUEST_URI} [R=301,NC,L]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/
RewriteRule ^(([^/]+/)*)index\.php$ http://subdomain.mydomain.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} \ /([^\ \?]*)([^\ \?]*)%2f(\?.*)?\ [NC]
RewriteRule !^/ /%1/%2 [QSA]
RewriteRule ^(/.+)%2f(.*)$ $1/$2 [NC,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?dir=([^\s]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?dir=/$1 [L]
我无法让它工作,也许其他人可以帮助我。 非常感谢!
【问题讨论】:
-
为什么不修复损坏的 PHP 脚本呢?
标签: .htaccess mod-rewrite clean-urls