Apache2 - 友好的URL

时间:2013-06-06 19:39:42

标签: .htaccess url apache2

我正在使用此代码创建友好的网址:

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,我的问题是我是否需要更改友好网址的任何设置?

1 个答案:

答案 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服务器。