hteaccess:htaccess的漂亮url显示404错误



我是溺爱的初学者。我想让网址漂亮。我在谷歌上搜索这个问题,然后我发现我必须使用 .htaccess。我尝试了htaccess代码。

这是我的网址的样子website.com/project-details.php?Residential/The-Serenas/1

我想让网址像 website.com/Residential/The-Serenas/1

我想通过htaccess从url中删除整个"项目详细信息.php?">单词。

这是我的.htaccess代码

Options +FollowSymLinks
RewriteEngine On 
RewriteBase /basename/ 


# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} /project-details.php?([^s&]+) [NC] 
RewriteRule ^ view/%1? [R=302,L] 

RewriteCond %{THE_REQUEST} /project-details?([^s&]+) [NC] 
RewriteRule ^ view/%1? [R=302,L] 



# internally rewrites /view/ABC123 to project-details.php?ABC123 
RewriteRule ^view/([A-Za-z0-9_@./#&+-]+)$ project-details.php?$1 [L,NC,QSA] 


# PHP hiding rule 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 

上面的htaccess代码工作和url替换到 website.com/view/Residential/The-Serenas/1

如果我从这一行中删除视图RewriteRule ^ view/%1? [R=302,L].

然后页面转到 404 错误。如果我不删除视图,那么代码有效,但视图显示在 url 上。我不想在 url 上显示任何内容,只删除"项目详细信息.php?

此规则是检查请求 uri 是否/project-details.php和任何查询字符串都跟在后面,并将用户重定向到与查询字符串匹配的 URI。 %1是反向引用,并提供对模式的分组部分(在括号中(的访问,在本例中为 ([^s&]+) 。例如,如果请求 uri /project-details.php?Residential/The-Serenas/1,用户将被重定向到 /Residential/The-Serenas/1

RewriteCond %{THE_REQUEST} /project-details.php?([^s&]+) [NC] 
RewriteRule ^ %1? [R=302,L] 

此规则是检查用户是否请求现有文件和目录,如果没有,则在内部重写 uri(只有服务器知道目标 URI,用户不知道(。例如,如果请求 uri /Residential/The-Serenas/1,服务器会将 uri 重写为 project-details.php?/Residential/The-Serenas/1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9_@./#&+-]+)$ project-details.php?$1 [L,NC,QSA] 

相关内容

最新更新