Php 如何将旧URL重定向到URL,但同时重定向到URL';虽然有漂亮的URL';s
这是我的旧网址Php 如何将旧URL重定向到URL,但同时重定向到URL';虽然有漂亮的URL';s,php,.htaccess,url-rewriting,Php,.htaccess,Url Rewriting,这是我的旧网址 http://localhost/site/viewactors.php?name=G%20Eazy%20ft%20Blac%20Youngsta%20and%20BlocBoy%20JB%20Drop 但新的url将如下所示: http://localhost/site/viewactors/G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-Drop 使用.htaccess如何将新url重定向到与查询相同的正确viewactors页面,但如果有人
http://localhost/site/viewactors.php?name=G%20Eazy%20ft%20Blac%20Youngsta%20and%20BlocBoy%20JB%20Drop
但新的url将如下所示:
http://localhost/site/viewactors/G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-Drop
使用.htaccess
如何将新url重定向到与查询相同的正确viewactors页面,但如果有人访问旧url,它仍然可以工作
这就是我目前拥有的
RewriteCond %{viewactors}.php -f
RewriteRule !.*\.php$ %{viewactors}.php [QSA,L]
RewriteRule ^([-\w]+)$ /viewactors.php?p=$1 [NC,L]
试试这个,希望它能解决您的问题:) 试试下面的规则
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^viewactors/(.*)$ viewactors.php?name=$1 [NC,L]
像这样修改
.htaccess
代码
RewriteEngine on
RewriteRule ^([a-zA-Z0-9-/]+)$ viewactors.php?name=$1
从下面的url
http://localhost/site/viewactors/G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-Drop
现在您可以像这样获得G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-Drop
值(在viewactors.php
文件中)
请尝试以下代码:
RewriteEngine On
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^(.*)/ /$1.php [QSA,L]
RewriteRule ^viewactors/([A-Za-z0-9-]+)/?$ /viewactors.php?name=$1 [QSA,L]
在viewactors.php页面中,您可以将以下代码放在页面顶部,以检索名称:
$param = explode("/",str_replace("'", "''", $_SERVER['REQUEST_URI']));
if(isset($param[count($param) - 1]) && $param[count($param) - 1] != ""){
$name = $param[count($param) - 1];
echo "Viewactor name = " . $name;
}
好吧,我发现这对我来说很有用: 重新启动发动机 重写规则^viewactors.php/([-a-zA-Z0-9_quo;]+)/?php?&name=$1[L] 我得到的URL如下所示:
http://localhost/site/viewactors/G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-Drop
而且旧的URL仍然有效你的问题是什么?我不确定你是否读过这个问题。解释为什么要使用show.php?slug=?我从一个.htaccess.复制了上面的一个,这就是为什么它是show.php。换了。再次查看此选项不拾取查询字符串,因为它返回null/viewcactors/G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-drop您的
.htaccess
文件存放在哪里?它应该在site
文件夹中。是的,它在site文件夹中,只是似乎无法通过查询。当您在前面添加问号时,它会拾取查询字符串,如下所示:?G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-drop要使其工作,我需要添加一个?在名称前面,如viewactors/?G-Eazy-ft-Blac-Youngsta-and-BlocBoy-JB-Dropuse?
如果您想要可选的尾随斜杠,请使用类似的内容重写规则^viewactors/(*)/?$
。
$param = explode("/",str_replace("'", "''", $_SERVER['REQUEST_URI']));
if(isset($param[count($param) - 1]) && $param[count($param) - 1] != ""){
$name = $param[count($param) - 1];
echo "Viewactor name = " . $name;
}