htaccess重定向问题

时间:2012-04-25 00:44:36

标签: .htaccess mod-rewrite redirect rewrite

在以下网站上:http://htaccess.madewithlove.be/

使用:http://localhost/prefix/games/u_id/game-name

填写请求网址

将它放在htaccess区域:

RewriteEngine On        
RewriteBase /prefix

# stop directory listings
Options -Indexes 

#stops htaccess views
<Files .htaccess>
order allow,deny
deny from all
</Files>        

# redirect game folders     
    RewriteRule ^prefix/games/(.*)$ prefix/protected/files/$1 [L]

# remove .php; use THE_REQUEST to prevent infinite loops
    RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
    RewriteRule (.*)\.php$ $1 [R=301]     

# remove index
    RewriteRule (.*)/index$ $1/ [R=301]

# remove slash if not directory
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} /$
    RewriteRule (.*)/ $1 [R=301]

# add .php to access file, but don't redirect
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule (.*) $1\.php [L]       

ErrorDocument 404 /prefix/error-404.php

结果如下:http://localhost/prefix/protected/files/u_id/game-name

现在,如果我将htaccess文件放在我的wamp localhost服务器上,并转到我们在该网站上放入请求网址的同一网址。它返回404页面未找到...但是如果我从测试站点(上面的那个)访问结果页面,它会加载那里的index.php页面。

重定向不适用于我的localhost网站。有任何想法吗? htaccess文件肯定在运行。

EDIT :: ///

我的Apache访问日志正在输出:

127.0.0.1 - - [25/Apr/2012:18:44:02 +0100] "GET /prefix/games/u_id/game-name HTTP/1.1" 404 116
127.0.0.1 - - [25/Apr/2012:18:44:02 +0100] "GET /favicon.ico HTTP/1.1" 404 209

修改:: ///

解决。

1 个答案:

答案 0 :(得分:0)

如果您的htaccess位于根目录内,则

RewriteBase /prefix无法正确。如果htaccess在前缀目录中,则您的重写符不应以前缀开头。 htaccess在哪里?