我已经读过,与在.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">
中的
感谢。
答案 0 :(得分:0)
如Apache manual on .htaccess中所述,您可以将.htaccess文件中的任何内容放入<Directory>
内的httpd.conf
块内,以提高效率。
关于重写网址的问题,您的第一个RewriteCond
似乎只是匹配的网址不是www.example.com
(前面的!
是否定修饰符)。删除!
并查看是否可以解决问题。 (你可能也应该删除第二个RewriteCond
,直到第一个匹配为止;否则,调试问题将更加困难。)