我们可以使用httpd.conf而不是.htaccess来获取干净的URL吗?

时间:2013-02-17 05:16:10

标签: .htaccess apache httpd.conf clean-urls

我已经读过,与在.htaccess中进行更改相比,httpd.conf中的设置更改要好得多,因为后者在运行时进行了解析,而在启动Apache时解析了.conf。那么,是否有可能在httpd.conf中拥有所有.htaccess功能,或者只有一些事情需要在.htaccess中完成。

另外,您能否建议如何调试干净的URL问题?

基本上,我无法使干净的URL工作。我可以访问show.php文件,但无法访问GET变量。这是.conf设置。

RewriteEngine On
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/show/([^/\.]+)/([^/\.]+)         http://www.example.com/show.php?id=$1&img=$2 [L,R]

我还添加了

Options Indexes MultiViews FollowSymlinks
AllowOverride All
<Directory "/var/www/html">

中的

感谢。

1 个答案:

答案 0 :(得分:0)

Apache manual on .htaccess中所述,您可以将.htaccess文件中的任何内容放入<Directory>内的httpd.conf块内,以提高效率。

关于重写网址的问题,您的第一个RewriteCond似乎只是匹配的网址不是www.example.com(前面的!是否定修饰符)。删除!并查看是否可以解决问题。 (你可能也应该删除第二个RewriteCond,直到第一个匹配为止;否则,调试问题将更加困难。)