我想删除 URL 的最后一个斜杠。例如:我想http://localhost/mysite/page/
重写为http://localhost/mysite/page
。
我正在本地主机 .htaccess 上使用此代码。
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/$ $1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ web.php?page=$1
如果我在浏览器上输入http://localhost/mysite/index
,它会显示我想要的内容。但如果我输入,http://localhost/mysite/index/
它会告诉我“未找到”和“在此服务器上未找到请求的 URL”。我在 Windows 8 上使用 UniServer。
答案1
尝试一下这个:
# Remove trailing slash if not an existing directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
# Rewrite to use web.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ web.php?page=$1 [L]
如果第二条规则已经运行良好,则可能不需要更改它。
答案2
添加这一行就可以了
RewriteRule ^(.*)/$ /mysite/$1 [R,L]