[英]Clean url rewriting using .htacces file in apache
我有一個網站,我在那里寫博客...在我的 blog.php 頁面上,我有來自不同類別的帖子。 當用戶點擊一個鏈接時,它會被重定向到帶有$_GET['title']
變量的 /blog-details.php 頁面。
我試過的
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#remove .php from all pages
RewriteRule ^([^\.]+)$ $1.php [NC]
#blog/title-here
RewriteRule ^blog/([A-Za-z0-9-\+]+)/?$ /blog-details.php?title=$1 [NC,L,QSA]
最后一行給了我類似的東西
xyz.com/blog-details?title=hello-world
我想要實現的是
xyz.com/blog/hello-world
不喜歡
xyz.com/blog-details?title=hello-world
謝謝,期待解答。
處理 .htaccess 文件時必須考慮的一件重要事情是,您必須檢查路徑是目錄還是文件,然后繼續執行操作。
我使用了您的代碼並且它運行正常,但只是添加了 -f 和 -d 檢查以確保這不會影響其他頁面。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#remove .php from all pages
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC]
#blog/title-here
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/([A-Za-z0-9-\+]+)/?$ /blog-details.php?title=$1 [NC,L,QSA]
要測試您的 .htaccess 文件和一些虛擬 URL,我強烈建議您查看 MadeWithLove
https://htaccess.madewithlove.be/
這將使您擁有一個測試輸入 URL,並查看是否獲得了正確的輸出 URL(您的服務器將讀取的實際 URL)。
話雖如此,我建議您研究未來項目和自我開發的路由。 我建議檢查的框架是 PHP 的無脂肪框架 (f3)。 它非常容易上手,您可以在 2 天內學會它,並且通過包含路由、ORM、全局變量、簡化的 SQL 查詢以及許多其他本質上讓您成為 PHP 開發人員的功能,節省了大量開發時間,而不是框架開發人員。
使用以下方法:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^blog/([0-9a-zA-Z_=-]+)$ blog-details.php?title=$1 [NC]
</IfModule>
然后你可以在頁面上訪問像 $_GET['title'] 這樣的標題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.