Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess:clean URL,参数为;“图像”;不';行不通_.htaccess_Url_Mod Rewrite_Url Parameters - Fatal编程技术网

.htaccess:clean URL,参数为;“图像”;不';行不通

.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等

我刚刚开始尝试找出如何使用.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等

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]

是的,就是这样。谢谢您。