我想在我的网站更改/重命名url。现在我只是在url中删除.html
,像这样:
ErrorDocument 404 /errorpage.html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [NC,L]
我想更改url。例如:index.html -> home
、aboutus.html -> about-us
等。我试着改变,但我得到服务器客户端错误500:
ErrorDocument 404 /errorpage.html
RewriteEngine on
RewriteRule ^index.html /home [NC,L]
RewriteRule ^aboutus.html /about-us [NC,L]
RewriteRule ^index.html /home [NC,L] RewriteRule ^aboutus.html /about-us [NC,L]
不清楚为什么您会在这里得到500个错误,除非您将这些规则与处理.html
无扩展url的前规则结合起来(这将导致重写循环,即。500错误)。
然而,你传递给RewriteRule
指令的参数是错误的。您应该将从/home
重写为/index.html
。第一个参数匹配请求的URL。第二个参数(替换字符串)表示要重写到的URL(或文件路径)。
你的指令应该像这样:
ErrorDocument 404 /errorpage.html
RewriteEngine on
RewriteRule ^home$ index.html [L]
RewriteRule ^about-us$ aboutus.html [L]
不需要替换字符串(第二个参数)上的斜杠前缀。
你应该在你的HTML源代码中链接到/home
和/about-us
形式的url, mod_rewrite内部将这些请求重写到实际处理请求的相应文件