簡體   English   中英

我可以使用PHP和/或htaccess重寫URL而不是重定向嗎?

[英]Can I use PHP and/or htaccess to rewrite a URL but not redirect?

有沒有辦法可以使用PHP(和/或.htaccess)來重寫頁面的URL。

例如,如果用戶訪問www.mysite.com/french,他們實際上正在訪問www.mysite.com/index.php?lang=fr頁面

但不是重定向。

您想使用mod_rewrite和.htaccess文件來實現此目的。

RewriteEngine On
RewriteBase /
RewriteRule ^french/(.*)$ /index.php?lang=fr [L,QSA]

是的,在.htaccess文件中使用Apache mod_rewrite和適當的規則。

mod_rewrite上的文檔在這里: http//httpd.apache.org/docs/current/mod/mod_rewrite.html

在Apache站點上,你可以找到幾個URL重寫風格的例子,就像它在.htaccess文件中使用這樣的東西一樣:

RewriteEngine on
RewriteRule ^french(/|)$ /index.php?lang=fr  [flag]

其中[flag]可以是以下之一:

[PT]
[L,PT]
[QSA]
[L,QSA]

您可能想要查看PT(passthrough)標志文檔RewriteRule標志文檔

另外,請注意鏈接指向的內容:實際上,RewriteRule第一個參數是一個正則表達式,用於匹配要重寫的URL。 在這一刻,

^french(/|)$

在域名之后匹配“french”,后跟斜杠(/)或者沒有(這是(/|)的含義); 也就是說,它將匹配www.mysite.com/french和www.mysite.com/french/,但沒有別的。 如果需要解析查詢字符串參數或子路徑,則可能需要更復雜的正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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