2013-08-21 80 views
3

我使用apache2和最新的php我想要做的是加載一個隨機的URL在我的域名的PHP文件。.htaccess用php加載隨機文件

實施例:example.com/randfilename.php?var1=1&var2=2&var3=3

然後randomfilename.php將加載file.php與VARS。請記住,randomfilename.php不會是那個名字隨着.php結尾的隨機數。

我試過RewriteEngine,它只適用於我的example.com/randfilename,但是一旦我添加.php它不起作用。

我已經試過是

RewriteEngine On 
RewriteRule ^([a-zA-Z\-]+)$ file.php?key=$1 [L] 

是否有這樣做,以實現我想要做的另一個路程。

回答

2

.php擴展名中有一個.,你的模式是^([a-zA-Z\-]+)$,它只能匹配字母和破折號,沒有句號。您可以將.php擴展明確添加到模式和排除file.php

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/file\.php$ 
RewriteRule ^([a-zA-Z\-]+)\.php$ file.php?key=$1 [L] 
+0

我不認爲這種模式會影響它。現在作品謝謝你! –

+0

關於'RewriteRule ^([a-zA-Z \ - ] +)'我該怎麼做只是讓任何字符通過?我通過PHP過濾它們是否存在安全風險以允許任何字符? –

+0

@AbbyE要讓任何東西通過,使用'^(。+)'。 '.'是一個正則表達式保留字符,意思是「除換行符外的任何字符」 –

0

什麼^([a-zA-Z\-]+)$實際意味着,「從開始到結束匹配-ZA-Z-」。由於「.php」有一個點,它不會匹配。

這應該做到這一點。

RewriteRule ^([a-zA-Z\-]+)\.php$ file.php?key=$1 [L]