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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php rewrite url_PHP实现url重写和.htaccess

發(fā)布時(shí)間:2023/12/6 php 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php rewrite url_PHP实现url重写和.htaccess 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

.htaccess是一個(gè)完整的文件名(只有后綴),它是用于Apache服務(wù)器下的配置文件,當(dāng).htaccess文件放在某一文件夾下,它僅對(duì)該文件夾下的文件和文件夾有效。通過(guò).htaccess文件,可以配置服務(wù)器實(shí)現(xiàn)很多功能,比如錯(cuò)誤定位,密碼保護(hù),IP拒絕,URL重寫等等。

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

配置方法:

配置方面:

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

LoadModule rewrite_module modules/mod_rewrite.so這行代碼,他前面有個(gè)#號(hào),把#號(hào)刪掉

2. ?找到

Options FollowSymLinks ExecCGI Indexes

AllowOverride None

Order deny,allow

Deny from all

Satisfy all

這個(gè)節(jié)點(diǎn),把None改為All.節(jié)點(diǎn)可能有多個(gè),修改和PHP路徑相關(guān)的那個(gè)。

3. 重啟apache服務(wù)

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

如果要實(shí)現(xiàn)URL重寫,配置文件中采用正則表達(dá)式是編寫URL,并使之和常規(guī)的php文件映射。常用的寫法如下:

RewriteEngine on ? ? ? ? ? ? ? ? ? ? ? //on為打開(kāi),off為關(guān)閉

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

網(wǎng)上找了一篇文件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文件內(nèi)容如下

RewriteEngine on ? ? ? ? ? ? ? ? ? ? ? //on為打開(kāi),off為關(guān)閉

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

說(shuō)明:

正則表達(dá)式,嚴(yán)格匹配類似Controller/Action或者Controller/Action/,映射到a.php

a.php內(nèi)容

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

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

?>

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

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

這2個(gè)url是等價(jià)的。

注意,在映射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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。