我有以下网址:
http://example.com/files/101-info/index.php
我的问题是:
我想让文件显示在:
http://example.com/files/info/index.php
但实际上仍在:
/var/www/htdocs/files/101-info/index.php
这是我尝试的内容,但我无法删除 101 - ,并且重定向无效:
RewriteEngine On
RewriteRule ^([^/]+)/([0-9]+)-([^\/]+)/(.+)\.php$ /$1/$2/$4 [R] // also tried [NC,QSA]
答案 0 :(得分:0)
注意: 请注意,如果您的.htaccess
中有其他规则未在问题中提及,并且未遵守以下规则:在适当的地方,它不会按预期工作。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+files/[0-9]+-([^/]+)/([^\s\?]+) [NC]
RewriteRule ^ /files/%1/%2 [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(files)/([^/]+)/([^/]+)$ /$1/101-$2/$3 [L]
第一条规则将删除101-
,第二条规则将在内部接受101-
,而无需更改文件夹名称或文件所在的位置。
一旦您确认它正常工作,请将其从[R=302,L]
更改为[R=301,L]
。
由于您之前使用的是重定向,因此您的浏览器可能会被缓存,因此请清除缓存并确保使用其他浏览器测试该URL,直到您的缓存被清除为止,因为它在删除后始终不会发生它