我不知道像這樣的網址是如何產生的:http://www.example.com/Xj7hF
沒有索引文件的短網址?
這是我見過被許多網址縮短服務以及其他網站,理應不想在參數顯示的URL數據的做法格式。
當然,他們不能將索引文件放在文件夾目的地/Xj7hF
等重定向到實際的網址,所以我想知道這是如何完成的。
任何幫助將不勝感激!
(我使用Apache在Linux服務器上運行)。
我不知道像這樣的網址是如何產生的:http://www.example.com/Xj7hF
沒有索引文件的短網址?
這是我見過被許多網址縮短服務以及其他網站,理應不想在參數顯示的URL數據的做法格式。
當然,他們不能將索引文件放在文件夾目的地/Xj7hF
等重定向到實際的網址,所以我想知道這是如何完成的。
任何幫助將不勝感激!
(我使用Apache在Linux服務器上運行)。
不同的web開發框架和web服務器以不同的方式做,但最常見的可能是使用mod_rewrite與apache。基本上,Web服務器將請求發送到動態腳本語言(例如PHP),以便腳本不需要知道原始請求URI的樣子,客戶端瀏覽器不需要知道什麼腳本實際上處理了請求。
例如,經常會看到:
這是/123
的請求,其Apache可能基於用戶配置的mod_rewrite如何改寫爲/my_script.php?id=123
的請求。
(例如的.htaccess)
# if the request is for a file or directory that
# does not actually exist, serve index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1
這就是所謂的URL rewriting,通常通過正確配置網絡服務器來執行。 StackOverflow有severaltags爲此,所以你應該能夠找到更多的信息。
是啊,我只是通過'mod_rewrite'這裏尋找 - http://corz.org/serv/tricks/htaccess2.php,但並沒有真正理解如何爲'http:// www.example.com/xH7hJ'創建一個新的重寫規則爲'http://www.example.com/goto/?url = xH7hJ'。任何想法如何可以做到?我已經看到這個特殊的例子,抓取後獲得的一切,並將其附加到重寫的URL'Options + FollowSymlinks RewriteEngine On RewriteRule^grab/public/files/download/download.php',但我沒有前綴除了'/'? – Avicinnian
你可能有這樣的一些東西: –
因此,重寫規則(沒有測試,只是在我頭頂)將重定向/ xH7hJ到index.php?url = xH7hJ。然後,index.php腳本可以做任何需要做的事情。兩個重寫條件確保只有在請求的文件或目錄不存在時才進行重寫。 –