2017-03-16 67 views
0

昨天我問了同樣的問題,但是被低估了。在相關的答案和文件中掙扎整整一天才能找到答案,但沒有任何運氣。URL中的一個漂亮變量(PHP + Apache)

我再次重複這個問題,也許這次我可以更清楚地傳達它。

我有一個單頁的應用程序在site.com

需要讓用戶創建的任何變量使用URL傳遞到前端。即使這樣的頁面不存在,變量也應該在url中可見,例如, site.com/variable(url的格式應該與此處顯示的完全相同)。

對於後端我使用PHP和Apache。

我htaccess文件是這樣的:

RewriteEngine On 
RewriteRule ^/(.*)$ /$1 [QSA,L] 
+0

你有沒有看過如何使用.htaccess渲染單個頁面,無論網址,沒有修改url本身?這聽起來像它可能是你的解決方案 – Stu

+0

是的,它應該是這樣的,但不起作用:RewriteRule /(.*)/ $ 1 – KPzzle

回答

0

你要找的是所謂URL rewriting。這是一個衆所周知的功能,允許將模板URL重寫爲特定的URL。最常見的用例是將URL的組件移至GET參數。

我沒有真正使用到Apache,但像這樣的.htaccess文件應該做的工作

RewriteEngine on 

RewriteRule ^(.*)$ index.php?variable=$1 [QSA,L] 

所以一切旁邊去根,要轉移到的index.php,填寫$ _GET ['variable']包含所有內容。該操作發生在apache一側,因此客戶端沒有可見的URL更改。

+0

不幸的是,我只能設法得到這個錯誤: 未找到 請求在此服務器上找不到URL /變量。 – KPzzle

+0

@KPzzle,也許將你的完整的.htaccess文件添加到原始問題中,你可能會缺少像'RewriteEngine on'等等,這將是找不到錯誤的原因之一。 – Stu

+0

我只使用這兩行,或者像@Jordan Quagliatini寫的或者像這樣: RewriteEngine在 RewriteRule /^(.*)$/$ 1 [QSA,L] – KPzzle

0
index.php 
<a href="1">click</a> 

submit.php 
<?php 
echo $_GET['id']; 
?> 

.htaccess 
RewriteEngine on 
RewriteRule ^([A-Za-z0-9-]+)/?$ submit.php?id=$1 [NC,L] 
+0

請在您的答案中提供更多詳細信息。解釋這將如何幫助。 –