我试图删除所有网址的尾部斜杠。无论我尝试什么htaccess脚本行,它总是重定向到整个服务器目录。
example.com/XYZ/
奇怪地重定向到example.com/customers/b/7/3/example.com/httpd.www/XYZ
- 未找到。
基本上,我没有使用任何子目录,而是根据最后一个斜杠之后的最后一个字符串从数据库中获取数据。所以"未找到"错误是可以的,因为实际上没有现有的文件夹。
我是htaccess的新手,所以我只想尝试我发现的任何一条线。
重写以便任何东西打开index.php而不是文件夹(在没有尾随斜杠的情况下工作正常,引擎打开):
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?$1
我使用它来删除斜杠失败了:
RewriteRule ^(.+)/$ /$1 [R=301,L]
所以基本上我要做的是:
example.com/XY
实际上没有重定向但是显示/打开index.php(我想我用两行来实现了这一点)example.com/XY/
,example.com/XY
和example.com/XY/
都显示/打开index.php 感谢您的智慧!
答案 0 :(得分:1)
你可以这样做:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L]
RewriteRule ^([\w-]+)/?$ /index.php?$1 [L,QSA]