Php .htaccess URL正在工作,但页面已被选中';t载荷
我正在尝试为我的网站URL创建一个Php .htaccess URL正在工作,但页面已被选中';t载荷,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我正在尝试为我的网站URL创建一个.htaccess脚本,该脚本正在运行,但页面无法加载未找到 在此服务器上找不到请求的URL/Site/users/yax。 我想出现 像这样:http://localhost/Site/users/name当单击但无法加载页面时 Apache代码: RewriteEngine on RewriteBase /Site/users/ RewriteCond %{THE_REQUEST} /users\.php\?user=([^\s&]+) [NC]
.htaccess
脚本,该脚本正在运行,但页面无法加载<代码>未找到
在此服务器上找不到请求的URL/Site/users/yax。
我想
出现
像这样:http://localhost/Site/users/name
当单击但无法加载页面时
Apache代码:
RewriteEngine on
RewriteBase /Site/users/
RewriteCond %{THE_REQUEST} /users\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z_]+)$ users.php?user=$1 [L]
提前感谢。将规则更改为:
RewriteEngine on
RewriteBase /Site/users/
RewriteCond %{THE_REQUEST} /users\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^users/([a-zA-Z_]+)$ users.php?user=$1 [L]
如果htaccess文件位于/Site/
文件夹中,则“用户”将是重写规则所匹配的URI的一部分,而不管您将重写基础设置为什么
另外,您应该将链接更改为http://localhost/Site/users/name
不要每次都添加额外的往返重定向。尝试以下代码:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /Site/
RewriteCond %{THE_REQUEST} /(users)/user\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(users)/(\w+)/?$ $1/user.php?user=$2 [L,QSA]
假设
/Site/users/user.php
是一个真实的文件,并且它在URI中接受user=name
您的HTML:
<a href="http://localhost/Site/users/name">View User</a>
我相信
users.php
和.htaccess
都存在于/Site/users/
路径中?否。.htaccess
位于Site
文件夹中。哦,好的,这就是原因。下面提供了一个答案。@anubhava:这就解决了问题。谢谢你让我开心。既然OP的实际URL是:http://localhost/Site/users/user.php?user=username
此.htaccess位于/Site/
文件夹中,该文件夹将用户
文件夹作为子文件夹。两条规则都采用了相同的概念。
RewriteEngine on
RewriteRule ^Site/users/(.*)$ /Site/users/user.php?user=$1