日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php rewrite url_PHP实现url重写和.htaccess

發布時間:2023/12/6 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php rewrite url_PHP实现url重写和.htaccess 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.htaccess是一個完整的文件名(只有后綴),它是用于Apache服務器下的配置文件,當.htaccess文件放在某一文件夾下,它僅對該文件夾下的文件和文件夾有效。通過.htaccess文件,可以配置服務器實現很多功能,比如錯誤定位,密碼保護,IP拒絕,URL重寫等等。

默認的Apache不支持.htaccess,需要修改Apache的配置文件httpd.conf,才能使得.htaccess有效。

配置方法:

配置方面:

1. 找到apache的安裝目錄下的conf下的httpd.conf文件,打開文件修改

LoadModule rewrite_module modules/mod_rewrite.so這行代碼,他前面有個#號,把#號刪掉

2. ?找到

Options FollowSymLinks ExecCGI Indexes

AllowOverride None

Order deny,allow

Deny from all

Satisfy all

這個節點,把None改為All.節點可能有多個,修改和PHP路徑相關的那個。

3. 重啟apache服務

接下來是創建.htaccess文件,并在里面寫配置。Windows中新建文件的時候,不允許文件只有后綴,可以采用notepad等工具新建另存為該文件名。

如果要實現URL重寫,配置文件中采用正則表達式是編寫URL,并使之和常規的php文件映射。常用的寫法如下:

RewriteEngine on ? ? ? ? ? ? ? ? ? ? ? //on為打開,off為關閉

RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$ b.php?action=$1&id=$2

RewriteRule ([a-zA-Z1-9]{1,})/([a-zA-Z1-9]{1,})$ a.php?controller=$1&action=$2

RewriteRule MyController/[a-zA-Z1-9]$ MyController.php?action=$1

ErrorDocument 404 /404.txt

網上找了一篇文件http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html例舉了常用的5種映射,也可以參考。

product.php?id=12 to product-12.html

RewriteEngine on

RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

Rewriting product.php?id=12 to product/ipod-nano/12.html

RewriteEngine on

RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

Redirecting non www URL to www URL

RewriteEngine On

RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$

RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L]

Rewriting yoursite.com/user.php?username=xyz to yoursite.com/xyz

RewriteEngine ?On

RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1

RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

Redirecting the domain to a new subfolder of inside public_html.

RewriteEngine ?On

RewriteCond %{HTTP_HOST} ^test\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.test\.com$

RewriteCond %{REQUEST_URI} !^/new/

RewriteRule (.*) /new/$1

示例:

.htaccess文件內容如下

RewriteEngine on ? ? ? ? ? ? ? ? ? ? ? //on為打開,off為關閉

RewriteRule ^([a-zA-Z1-9]{1,})/([a-zA-Z1-9]{1,})$ a.php?controller=$1&action=$2

RewriteRule ^([a-zA-Z1-9]{1,})/([a-zA-Z1-9]{1,})/$ a.php?controller=$1&action=$2

說明:

正則表達式,嚴格匹配類似Controller/Action或者Controller/Action/,映射到a.php

a.php內容

echo "你的controller:".$_GET['controller']."
";

echo "你的action:".$_GET['action'];

?>

輸入http://localhost:8080/Controller/Action/

則被解析到http://localhost:8080/a.php?controller=Controller&action=Action

這2個url是等價的。

注意,在映射url后加上查詢字符串不影響正常的映射,比如輸入http://localhost:8080/Controller/Action/?value=100,也是可以的。

參考文檔:

http://www.htaccess-guide.com/

http://corz.org/serv/tricks/htaccess.php

http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html

總結

以上是生活随笔為你收集整理的php rewrite url_PHP实现url重写和.htaccess的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。