[英]RewriteRule in .htaccess doesnt work
我从来没有使用过“漂亮的网址”之类的东西,但是我必须解决这个问题,我也不知道该如何做。 所以我在php中有此功能:
function niceUrl()
{
// getting variable based on .htaccess
$request = $_GET['tlederPageId'];
var_dump($request);
$vars = explode("/", $request);
return $vars;
}
并且此var_dump仅打印NULL
这在.htaccess中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)(.*)/?$ index.php?tlederPageId=$1&%{QUERY_STRING}
而且我不知道该如何工作。 我什至不知道在哪里寻求帮助。 有人可以向我解释吗? 提前致谢。
好吧,让我们分解一下您提供的帖子:“漂亮的网址”:通常定义为SEO友好的网址,描述了两件事
1,特定类别
2,该类别的特定主题
(注意)这并不意味着您的主题必须具有类别
从漂亮的网址上方使用示例一可以包含以下内容: http : //www.animals.com/dogs/
从上方使用示例二,一个漂亮的URL可能包含以下内容: http : //www.animals.com/dogs/bulldogs/
使用上面的“注释”:拥有相对域名不一定必须具有类别才能拥有主题; 类似于: http : //www.bulldogs.com/american-bulldogs/
关于您的“ .htaccess”,这一行对我来说很奇怪:
RewriteRule (.*)(.*)/?$ index.php?tlederPageId=$1&%{QUERY_STRING}
具有(.*)(.*)
含义与说[ANYTHING + ANYTHING = ANYTHING]相同,尽管您的.htaccess会将任何请求转发到根目录中名为index.php的文件,该文件的$ _GET变量为tlederPageId作为以及所传递的任何其他查询字符串。
然后,确保通过URL进行传递是您的工作,首先通过apache,然后通过php进行验证。
例如:如果您捕获了“ tlederPageId”,并通过PHP对变量进行了一些预处理,并确定URL无效(例如: http : //www.bulldogs.com/boxers/ ),则它是您的负责抛出404,如果有人通过了有效的URL,您将接受该URL为200 OK。 这些需要在php标头中设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.