.Htaccess RewriteRule将所有页面重定向到404找不到页面错误


.Htaccess RewriteRule redirects all pages to 404 page not found error

我有一个长url,格式如下

      example.com/user.php?uname=foo&pass=bar

这个url的问题是它根本不值得记住,

所以我想把它变成一个搜索引擎友好的url

  example.com/foo/bar

我已经在我的htaccess中尝试了这个规则,它在网络根上

 RewriteRule ^([a-zA-Z0-9]+)([a-zA-Z0-9]+)/?$mysite.com/user.php?uname=$1&pass=$2

但问题是它不起作用,它将所有未找到的页面请求重定向到404。

有什么想法吗?

试试这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /user.php?uname=$1&pass=$2 [QSA,L]

这些条件确保您不会重写服务器上的任何现有文件/目录。