.htaccess:clean URL,参数为;“图像”;不';行不通
我刚刚开始尝试找出如何使用.htaccess创建干净的URL,但似乎我马上就遇到了一堵墙。。。我有以下简单的.htaccess:.htaccess:clean URL,参数为;“图像”;不';行不通,.htaccess,url,mod-rewrite,url-parameters,.htaccess,Url,Mod Rewrite,Url Parameters,我刚刚开始尝试找出如何使用.htaccess创建干净的URL,但似乎我马上就遇到了一堵墙。。。我有以下简单的.htaccess: RewriteEngine on RewriteRule ^([a-zA-Z0-9-]+)$ index.php?id=$1 [L] RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?id=$1 [L] 它主要按照预期工作:mysite.com/somepage转到mysite.com/index.asp?id=somepage等
RewriteEngine on
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?id=$1 [L]
RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?id=$1 [L]
它主要按照预期工作:mysite.com/somepage转到mysite.com/index.asp?id=somepage等
id为“图像”时除外。当我尝试mysite.com/images时,它会显示:mysite.com/images/?id=images(尽管页面仍然可以正常加载)
顺便说一下,mysite.com/images/(带斜线)工作正常。过去几天我一直在寻找解决方案,这是我能得到的最好的解决方案。因为
images
是一个目录,Apache的mod_dir
模块在重写规则后添加了一个尾随斜杠。您可以关闭此功能并自己添加尾部斜杠:
DirectorySlash Off
RewriteEngine on
# add a trailing slash
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?id=$1 [L,QSA]
是的,就是这样。谢谢您。