我从来没有使用像“漂亮的网址”这样的东西,但我必须解决这个问题,而我却不知道如何。 所以我在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}
我不知道该怎么办呢。我甚至不知道在哪里寻求帮助。有人可以向我解释一下吗?提前谢谢。
答案 0 :(得分:0)
好吧让我们分解您提供的帖子: “漂亮的网址”:通常定义为SEO友好的网址,描述两件事
1,特定类别
2,该类别的特定主题
(注意)这并不意味着您的主题必须具有类别
使用上面的示例一个漂亮的URL可能包含以下内容: 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标题中设置。