我昨天购买了一个PHP版本为5.3.3的虚拟专用服务器 然后我将我的php版本升级到5.4.22 现在htaccess通常不起作用..它没有做任何事情。 我尝试了什么: 我在httpd.conf
中这样做了 <Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
它没有用,所以我在我的.htaccess中尝试了这个:
<FilesMatch "\.(inc|php|php3|php4|php5|php6|phtml|phps)$">
SetHandler x-httpd-php54
</FilesMatch>
这也不起作用。
如果我用<?php phpinfo() ?>
创建一个页面并且我检查加载的模块,我看到mod_rewrite已加载。
我的.htaccess
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak)$">
Order Allow,Deny
Deny from all
</FilesMatch>
RewriteEngine on
RewriteRule ^d/(.*)$ delete.php?img=$1 [L]
RewriteRule ^i/(.*)$ i.php?img=$1 [L]
RewriteRule ^e/(.*)$ editor.php?img=$1 [L]
RewriteRule ^u/$ /u/index.php?img=$1
RewriteRule ^([a-zA-Z0-9]*)$ getimage.php?image=$1
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpeg|png|bmp|jpg) http://(ip)/6j5o [NC,L]
ErrorDocument 400 http://(ip)/404.php
ErrorDocument 401 http://(ip)/404.php
ErrorDocument 403 http://(ip)/404.php
ErrorDocument 404 http://(ip)/404.php
ErrorDocument 500 http://(ip)/404.php
有什么想法吗? (我的服务器是Centos 6 64bit)
答案 0 :(得分:1)
您的Apache配置位于/etc/httpd/conf/httpd.conf
。确保此行没有注释掉
LoadModule rewrite_module modules/mod_rewrite.so
现在,转到/etc/httpd/conf.d
并查看您网站的配置(我希望您已在此处创建了自己的sitename.conf
)。你应该有这样的东西(你的可能会有相当大的数量,这是来自托管一个网站的服务器)
<VirtualHost *:80>
DocumentRoot /var/www/html/mydir
ServerName my.domain.name
ServerAlias my.domain.name
ErrorLog logs/mydomain
CustomLog logs/mydomain common
<Directory "/var/www/html/mydir">
Allow from all
Options +FollowSymLinks
</Directory>
</VirtualHost>
确保使用站点根目录的完整路径名。