1

我有一个站点,需要 htaccess 代码来在地址栏中进行此更改,而无需在服务器文件夹中进行任何物理更改

example.com/data/65767.html 为 example.com/65767

example.com/data/56-45.html 为 example.com/56-45

问候

4

1 回答 1

1

效率极低,您需要确保将链接更改为指向没有的链接.html,但是...

RewriteEngine On

# externally redirect so that the browser shows the non-.html URL
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /data/([0-9-]+)\.html
RewriteRule ^ /%2 [L,R=301]

# internally rewrite the non-.html URI back to the .html URI
RewriteCond %{DOCUMENT_ROOT}/data%{REQUEST_URI}.html -f
RewriteRule ^/?([0-9-]+)$ /data/$1.html [L]

这适用于/data/<any number of digits or "-">URI。如果您希望它与任何东西一起使用,请将其替换[0-9-].


编辑:

我们也可以重定向example.com/65767.html到是example.com/65767和内容来自example.com/data/65767.html

是的,只需将第一条规则更改为:

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /(data/)?([0-9-]+)\.html
RewriteRule ^ /%3 [L,R=301]
于 2012-10-17T01:23:57.593 回答