最近我正在制作一个php应用程序,我希望对我的文件进行一些更改
所以我使用.htaccess和RewriteEngine,当我想运行我的应用程序时,它说404
这是我的代码,我试着说404!
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^access/(\d+)*$ show.php?address=$1&login=0
例如我的原始地址:
www.ex.com/show.php?address=5411496bc2b6c&login=0
我想将其改为:
www.ex.com/access/5411496bc2b6c
这是我的问题我在.htaccess做错了吗?
答案 0 :(得分:1)
在你的规则中:
RewriteRule ^access/(\d+)*$ show.php?address=$1&login=0
应该是:
RewriteRule ^access/([a-z0-9]+)$ show.php?address=$1&login=0
(\d+)
表示数字,因为您似乎需要数字+较低的字母字符吗?
同样SCRIPT_FILENAME
将匹配执行脚本文件名,因此它永远不会是目录,您也将重写真实的现有目录,而是使用REQUEST_URI
或REQUEST_FILENAME
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
这对我有用:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^access/([a-z0-9]+)$ show.php?address=$1&login=0 [L]
答案 1 :(得分:1)
尝试此规则:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^access/([^/]+)/?$ show.php?address=$1&login=0 [L,QSA,NC]