0

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

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,我的问题是我是否需要更改任何设置才能使友好的 url 正常工作?

4

1 回答 1

1

有很多可能性。以下是一些(其中一些来自SmartWebDeveloper.com):

  • 确保.htaccess文件命名正确。确保你没有忘记.开头的,并且文件名都是小写的。

  • 确保AllowOverride设置正确。如果您查看配置文件(httpd.conf可能还有目录中的其他配置文件/etc/apache2/),您可能会看到如下一行:AllowOverride None. 该行可防止您的 .htaccess 文件更改内容。(注意,这行可能在服务器配置中的多个位置出现——包括主配置、web根目录配置(可能在/etc/apache2/sites-available/default),以及文件夹中的任何VHost配置文件sites-enabled,因此您需要找到实际上是将更改此站点的内容。)将其更改为AllowOverride FileInfo(如果您只需要重写)或AllowOverride All(如果您打算将其.htaccess用于其他事情。)完整说明AllowOverride位于http://httpd.apache.org/docs/current/mod/core.html#allowoverride

  • 确保启用了重写模块。如果您的重写配置包含在<IfModule mod_rewrite.c></IfModule>标记中,或者如果您的 Apache 配置为不报告.htaccess错误,您将看不到模块被禁用的任何地方。要启用它,请使用a2enmod rewrite并重新启动 Apache 服务器。

于 2013-06-06T20:17:55.047 回答