我正在尝试将一些规则设置到我的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文件的问题。 请在这里帮助我。
答案 0 :(得分:0)
与htaccess
不同,在httpd.conf中,规则需要包含前导/
:
例如,
RewriteRule ^/(.*)$ /index.php?$1 [L]
答案 1 :(得分:0)
我得到了它做错了。在httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
有 AllowOverride无 只是用AllowOverride All替换它。
谢谢大家的帮助。