我想删除网址中的所有Trailing Slash。例如:
This: mysite.com/category/ or mysite.com/category/id1/
我想要这个(删除/ ):
To: mysite.com/category or mysite.com/category/id1
我在使用.htaccess调整正则表达式方面存在严重问题 遗憾!
这是我目前的.htaccess:
Options -Indexes
#-- custon error pages
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
ErrorDocument 405 /405.php
#-- enable RewriteEngine and use parameter "p" --
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1
#-- now WWW to WWW --
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^/?$ "http\:\/\/www\.mysite\.com\/" [R=301,L]
非常感谢任何帮助!
圣诞快乐! :)答案 0 :(得分:0)
无需转义目标网址中的字符。
我更正了/重新调整了你的htaccess规则,并添加了一条删除尾部斜杠的规则。
Options -Indexes
#-- custon error pages
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
ErrorDocument 405 /405.php
#-- enable RewriteEngine and use parameter "p" --
RewriteEngine On
#-- now WWW to WWW --
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R,L]
#Remove trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/+$ $1 [L,R]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1
在测试之前清除浏览器缓存。