php升级后.htaccess无法正常工作

时间:2013-11-15 17:30:42

标签: php apache .htaccess mod-rewrite

我昨天购买了一个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)

1 个答案:

答案 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>

确保使用站点根目录的完整路径名。