我正在使用此代码创建友好的网址:
rewriteengine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
它应该可以工作所以我可以转到http://www.mywebsite.com/test但是当我去我的网址时它只是说404 Not Found
但是日志文件中没有错误。
我在Debian x86_64上使用Apache2,我的问题是我是否需要更改友好网址的任何设置?
答案 0 :(得分:1)
有很多种可能性。以下是一些(其中一些来自SmartWebDeveloper.com):
确保.htaccess
文件名称正确。确保您没有忘记开头的.
,并且文件名全部为小写。
确保AllowOverride
设置正确。如果您查看配置文件(httpd.conf
以及/etc/apache2/
目录中可能的其他配置文件),您可能会看到如下所示的行:AllowOverride None
。该行可防止.htaccess文件更改内容。 (请注意,此行可能存在于多个位置的服务器配置中 - 包括主配置,Web根目录配置(可能在/etc/apache2/sites-available/default
中)以及sites-enabled
文件夹中的任何VHost配置文件,所以你需要找到一个实际上会改变这个网站的东西。)把它改成AllowOverride FileInfo
(如果你需要的只是重写)或AllowOverride All
(如果你打算用你的{{} 1}}其他内容。).htaccess
的完整说明位于http://httpd.apache.org/docs/current/mod/core.html#allowoverride
确保已启用重写模块。如果您的重写配置包含在AllowOverride
和<IfModule mod_rewrite.c>
标记中,或者您的Apache配置为不报告</IfModule>
错误,则您将看不到该模块被禁用的任何位置。要启用它,请使用.htaccess
并重新启动Apache服务器。