我正在尝试将自定义网址重定向到我的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
答案 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,现在它完美运行..