繁体   English   中英

htaccess规则在从httpd.conf中运行时不起作用

[英]htaccess rules are not working while works from httpd.conf

我试图在我的Web根目录中设置一些规则。 / var / www / html /在此目录中,我在.htaccess文件中设置了一些规则。 该文件由ftp上传。 文件权限如下。

-rw-r--r-- 1 apache apache 363 Jun 17 15:27 /var/www/html/.htaccess

文件包含规则。

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|captcha|images|upload_image|thumbnail1|users_images|profile_pic|js|css|fonts|font-awesome|css_admin|font_admin|font_awesome_admin|images_admin|js_admin|facebook|twitter|google|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]

但是当我在httpd.conf中设置相同的规则时,规则可以正常工作。

在httpd.conf中

<Directory /var/www/html>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|captcha|images|upload_image|thumbnail1|users_images|profile_pic|js|css|fonts|font-awesome|css_admin|font_admin|font_awesome_admin|images_admin|js_admin|facebook|twitter|google|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
</IfModule>
</Directory>

我无法获得htaccess文件的问题。 请在这里帮助我。

htaccess不同,在httpd.conf中,规则需要包含前导/

例如,

RewriteRule ^/(.*)$ /index.php?$1 [L]

我知道做错了什么。在httpd.conf

<Directory "/var/www/html">
Options Indexes FollowSymLinks
 AllowOverride All 
Order allow,deny
Allow from all
</Directory>

之前存在AllowOverride None,只是将其替换为AllowOverride All。

谢谢大家的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM