[英]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.