2015-12-23 247 views
3

我正在使用.htaccess文件進行網址重寫。我已經寫了所有.PHP的推廣與隱藏他們我使用此代碼使用查詢字符串隱藏.php網址的擴展

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L]` 

頁,但這個隱藏當我寫「www.example.com/abc.php」到「www.example.com/abc「。我希望他們能像當我點擊一個鏈接

<a href="example.php">example</a> 

然後頁面鏈接應該像「www.example.com/example」而不是「www.example.com/example.php」

打開自動改變

還怎麼躲?「VAR =」你好」所有的網頁,但變量應該被髮送到該頁面可能?。

UPDATE

例如這裏我用這

<?php 
if(isset($_GET['hi'])){ 
echo $_GET['hi']; 
} 
?> 
<a href="a.php?hi=sdsdsd">a</a><br> 
<a href="b.php">b</a><br> 
<a href="c.php">c</a><br> 
<a href="d.php">d</a><br> 

我想要什麼頁面應該訪問沒有擴展名和查詢字符串應該隱藏,但必須訪問。

回答

1

使用此的.htaccess:

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 
+0

它不是查詢字符串的工作。看我的更新 –

0

對於hidding VAL你應該使用,而不是GET POST。並看看on this article .htaccess他在這裏定義好。

+0

但我創建動態頁面,其中GET正在工作不能使用後 –

+0

您也可以使用動態POST。 –

+0

是的,我可以,但也有很多的網頁,還可以使用這裏我用頭重定向,所以我不能改變的網關,現在 –

0

關於隱藏查詢字符串。當php頁面運行時,它可以首先檢查查詢字符串。如果找到了,你可以從查詢字符串中提取數據,將其存儲在某個地方(可能會話)並重定向到沒有查詢字符串的頁面(並且沒有文件擴展名)。

但是,如果你這樣做,你會遮住使用查詢字符串的大多數好處。

+0

這意味着我不能隱藏查詢無論頁面是的.htaccess ?? –

+0

對不起,我不清楚。我編輯了我的答案。您不能刪除服務器中的查詢字符串,然後該腳本將無法使用該字符串,並且您將丟失該數據。但是你可以讓腳本隱藏它。 – tbernard

+0

在這裏你可以http://stackoverflow.com/questions/21892542/customize-url-or-hide-query-string-using-htaccess但我們必須指定每個頁面。我想無論頁面會自動隱藏查詢字符串 –

0

完全地消除PHP擴展,你可以使用:

RewriteEngine on 

#1redirect "/file.php" to "/file" 
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC] 
RewriteRule^%1 [NC,L,R] 

#if the request is not for a dir 
RewriteCond %{REQUEST_FILENAME} !-d 

#and the request is an existing php file 
RewriteCond %{REQUEST_FILENAME} !-f 
#then rewrite the request to orignal php file 
RewriteRule ^([^/]+)/?$ $1.php [NC,L] 
+0

隱藏PHP擴展的解決,但隱藏查詢字符串是不解析@Starkeen –

+0

@sharefun做ü要放棄從URL中的查詢字符串? – starkeen

+0

沒有變量應該被訪問到任何他們的功能,但它不應該在網址上看到。它的功能應該是他們的 –