【问题标题】:How to redirect invalid URL in .htaccess?如何重定向 .htaccess 中的无效 URL?
【发布时间】:2013-11-19 10:58:09
【问题描述】:
/(directory/?param=value)无法更改此网址
directory/?param=value
到
directory/value
这不行:
RewriteCond %{REQUEST_URI} ^/directory/.*
RewriteRule ^/directory/\?param=(.*) /directory/$1 [L]
我的问题是如何替换 ?param= ???
【问题讨论】:
标签:
apache
.htaccess
symfony-1.4
【解决方案1】:
这些规则应该适合你:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+(directory)/\?param=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [R=302,L]
RewriteRule ^(directory)/([^/]+)/?$ /$1/?param=$2 [L,QSA,NC]
【解决方案2】:
您无法匹配RewriteRule 中的查询字符串(? 之后的所有内容),请尝试:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?directory/(.+)$ /directory/?param=$1 [L]
这需要:directory/value 并在内部对其进行重写以提供 directory/?param=value 处的内容。