[英]seo friendly url for blogs
我正在建立一個博客系統,我在數據庫中有一個名為url
的表,該表將帖子標題與日期保存在一起,我還有一個名為index.php
的頁面,其中顯示了數據庫中的所有數據,單擊后即可將您帶到post.php
。問題是該網址不是SEO友好site/post?url=seo-friendly-url.html/2017-09-29
,我有一個.htaccess文件,效果很好
`Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
RewriteRule ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1
RewriteRule ^post/([a-zA-Z-0-9-]+)/ post.php?url=$1
`
但拒絕重寫我的博客帖子,我的索引超鏈接看起來像這樣的<a href='post?url=".$row['url']."'>
,試圖將其重寫為<a href='post/".$row['url']."'>
但是沒有用,已經進行了研究,但仍然沒有任何進展,請多多幫助,因為已經有好幾天了。
在您網站的VirtualHost文件中添加AliasMatch(這將位於您的apache文件夾中)
這些是您需要在虛擬主機文件中添加的行
AliasMatch ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1
AliasMatch ^post/([a-zA-Z-0-9-]+)/ post.php?url=$1
在基於Linux的服務器中。 虛擬主機將位於文件夾中
/etc/apache2/sites-enabled/
在此文件夾中,找到您的網站虛擬主機文件,並添加這兩行
虛擬主機將具有與此類似的代碼
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Add these two line only donot disturb any other lines
AliasMatch ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1
AliasMatch ^post/([a-zA-Z-0-9-]+)/ post.php?url=$1
</VirtualHost>
在您的.htaccess文件中, 刪除這兩行
RewriteRule ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1
RewriteRule ^post/([a-zA-Z-0-9-]+)/ post.php?url=$1
獎金
現在,如果您要將正在訪問舊網址(/post?url="old_url.html“)的用戶重定向到新的seo友好網址(/post/old_url.html),請將其添加到您的.htaccess文件中
RewriteRule ^post.php?url=([a-zA-Z0-9-/]+)$ post/$1
RewriteRule ^post.php?url=([a-zA-Z-0-9-]+)/ post/$1
如果您在虛擬主機文件中將所有行作為注釋(所有行的#開頭),請將其添加到底部的虛擬主機中
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
AliasMatch ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1
AliasMatch ^post/([a-zA-Z-0-9-]+)/ post.php?url=$1
</VirtualHost>
**
進行更改后,請記住重新啟動Apache Server。
**
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.