.htaccess重定向不会执行特定文件

时间:2014-11-10 07:22:05

标签: .htaccess redirect

我正在尝试将自定义网址重定向到我的customtimer.php页面,但由于某种原因它不起作用。

根据下面的代码,我试图抓住所有website.com/u/username(有或没有尾随“/”)并执行website.com/customtimer.php?un=$1页面但不知何故不起作用(我被发送到404页面)。我尝试过这么多组合,让我感到困惑。 errordocs重定向降低工作就好了......

我缺少什么?

RewriteEngine on

# make sure that all common folders wont be interpreted as timers
RewriteRule ^(admin|css|images|js|mlb|nba|nfl|nhl|php|templates|wav)/?(.*) - [L]

# redirect to the right user page or direct-url timer
RewriteRule ^/u/(.+?)/?$ /customtimer.php?un=$1 [NC,L]

# some error catching, lets give users more beautiful pages to look at (ja)
ErrorDocument 400 /400-badrequest.php
ErrorDocument 401 /401-authreqd.php
ErrorDocument 403 /403-forbid.php
ErrorDocument 404 /404-notfound.php
ErrorDocument 500 /500-server.php

1 个答案:

答案 0 :(得分:1)

从第二条规则中移除leading slash并稍微调整一下你的正则表达式:

# some error catching, lets give users more beautiful pages to look at (ja)
ErrorDocument 400 /400-badrequest.php
ErrorDocument 401 /401-authreqd.php
ErrorDocument 403 /403-forbid.php
ErrorDocument 404 /404-notfound.php
ErrorDocument 500 /500-server.php

RewriteEngine on

# make sure that all common folders wont be interpreted as timers
RewriteRule ^(admin|css|images|js|mlb|nba|nfl|nhl|php|templates|wav)/? - [L]

# redirect to the right user page or direct-url timer
RewriteRule ^u/([^/]+)/?$ /customtimer.php?un=$1 [NC,L,QSA]

还要确保将.htaccess放在DocumentRoot目录

编辑:joel

正如anubhava在此之前所说的,发现问题来自于从服务器的根/编辑.htaccess文件,而不是web文件所在的root / html /文件夹。因此.htaccess文件无法运行请求。为了解决这个问题,.htaccess的副本被上传到root / html / .htaccess,现在它完美运行..