簡體   English   中英

.htaccess中的RewriteRule不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM