【发布时间】:2021-07-18 11:08:38
【问题描述】:
最近我在我的 apache 服务器中修改了我的 .htaccess 文件。这是以下代码
RewriteEngine On
<IfModule mod_speling.c>
CheckSpelling On
</IfModule>
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^course/([^/.]+)$ course.php?name=$1 [QSA,L]
RewriteRule ^course/([^/.]+)/$ course.php?name=$1 [QSA,L]
RewriteRule ^about$ about.php [QSA,L]
RewriteRule ^about/$ about.php [QSA,L]
RewriteRule ^contact$ contact.php [QSA,L]
RewriteRule ^contact/$ contact.php [QSA,L]
RewriteRule ^downloads$ downloads.php [QSA,L]
RewriteRule ^downloads/$ downloads.php [QSA,L]
RewriteRule ^ errors/404.html [L,NC]
现在的问题是
如果我在我的网络浏览器中输入http://localhost/about 之类的 URL,它总是会显示自定义的404.html
我认为问题出在最后一行。
如果我删除最后一行,它将起作用。
但我也想要 404 页面。如果用户输入http://localhost/SomeRandomString,则此网址上会显示 404 页面。
我也在 .htaccess 文件上尝试了ErrorDocument,但它会更改 url
这个问题有什么解决办法吗?
【问题讨论】:
标签: apache .htaccess mod-rewrite url-rewriting friendly-url