【问题标题】:Trying to redirect a uri to a page with parameter尝试将 uri 重定向到带有参数的页面
【发布时间】:2011-02-21 21:17:17
【问题描述】:
我遇到的问题是我尝试做两件事
- 从页面中删除 .php
- 将 /user/12345 重定向到 /user?id=12345
我为此使用了一个 HTACCESS 文件
RewriteEngine On
#remove .PHP from filenames
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
# Get user info for uri
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^user/(.*)$ user?UserID=$1 [L]
.php 已被删除,但当我输入 /user/12345 之类的 URL 时,我被重定向到主页而不是用户页面
我做错了什么?
【问题讨论】:
标签:
.htaccess
redirect
uri
【解决方案1】:
我认为你至少需要重写为user.php?UserID=$1
如果您可以提高您的 mod_rewrite 日志记录级别,它会在其日志中显示其正在运行,如果您可以跟踪正在发生的事情,这将很有帮助。
【解决方案2】:
我得到它的工作是按照两个步骤的顺序
这是正确且有效的 HTACCESS
RewriteEngine On
# Get user info for uri
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^user/(.*)$ /user.php?UserID=$1 [L]
#remove .PHP from filenames
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
感谢您的帮助