重定向使用htaccess无法正常工作

时间:2016-10-07 16:24:50

标签: php apache .htaccess redirect

我正在使用htacess文件从我的网页中删除.php扩展名。 但是,我有一个名为images.php的页面和一个名为images的目录(都在根目录中)。

因此,当从图像网页中删除.php扩展名时,该网站会重定向到图像目录。

我已尝试将图片文件从image.php重命名为imageone.php,然后使用htacess重定向,但问题仍然存在

我能以任何方式克服这个问题吗?

 # Remove .php
    <IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule .* $0.php

     #browser requests PHP
     RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
     RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

     # check to see if the request is for a PHP file:
     RewriteCond %{REQUEST_FILENAME}\.php -f
     RewriteRule ^/?(.*)$ /$1.php [L]
    </IfModule>



    Redirect 301 /images.php http://www.thewebsite.com/imagesone.php

2 个答案:

答案 0 :(得分:1)

您忘记了评论专线#之前的browser requests PHP

 # browser requests PHP

答案 1 :(得分:0)

避免将Redirectmod_rewrite混合,并按此顺序排列规则:

RewriteEngine On 

RewriteRule ^/?images\.php$ http://www.thewebsite.com/imagesone.php [L,NC,R=301]

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.+)\.php$ /$1 [L,R=301,NC]

# internally add .php to requests
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]