麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Apache > 正文

mod_rewrite小技巧

2024-08-27 18:22:01
字體:
來源:轉載
供稿:網友

作為站長,你要決定怎樣提高你網頁對訪問者的辨識度以及在重寫的uri地址里放入適當的信息。在創建新的uri規則的時候務必考慮詳細周全一些。另外當你完成新的uri規則以后,必須回去更新以前老的鏈接來匹配新的規則。

當你在設計新的uri規則的時候,一定注意其唯一性。舉一個先前的例子,我用了國家名,州省名,城市名作為uri的元素,因為他們在數據庫教程里面都是唯一的。但是如果建立一個讓用戶自己更新的數據庫,我們沒有理由讓用戶取的文章名字保持唯一性,所以文章一般在數據庫里是以一個自動增長的id作為唯一識別碼,這個唯一id對url重寫規則相當友好,它可以使你的重寫規則更加簡潔,在url里面可以用原子非常直接的將其值標識出來。

人們通常想映射數據庫里面的值比如標題以及其他字符作為url的標識,在mod_rewrite中有一個rewritemap狀態專門處理這種情況,但是前提是你必須有修改apache配置文件httpd.conf的權限。所以為了根本避免這個問題,還是直接用id創建你的鏈接吧。

空格是以%20的形式展示在url中的,所以你必須在php教程代碼里面將其替換掉,php的str_replace函數完全可以勝任這項工作。你只需要在$_get獲取查詢值的時候,將其替換就可以了。但是在數據庫中空格是難免的,所以我寧愿將空格替換成下劃線,以下為php代碼:

$name = str_replace ( ‘ ‘, ‘_’, $name );

在添加新的url規則的時候,小心不要打破了原先已存在的鏈接間的相對關系。開發人員通常會驚訝為什么有時候css教程,網頁特效,圖片等文件出現錯誤或者不啟作用了。記住相對鏈接只匹配你當前url的地址,所以你需要將這些相對鏈接更改成絕對鏈接地址,或者在你的靜態網頁加上html

標簽。

13 個mod_rewrite 應用舉例

先前我們舉了一個給每個鏈接加一個www的列子,現在讓我們看看用mod_rewrite還可以做哪些工作。

1.給子域名加www標記 

rewritecond %{http_host} ^([a-z.]+)?example.com$ [nc]

rewritecond %{http_host} !^www. [nc]

rewriterule .? http://www.%1example.com%{request_uri} [r=301,l]

這個規則抓取二級域名的%1變量,如果不是以www開始,那么就加www,以前的域名以及{request_uri}會跟在其后。

2.去掉域名中的www標記 

rewritecond %{http_host} !^example.com$ [nc]

rewriterule .? http://example.com%{request_uri} [r=301,l]

3.去掉www標記,但是保存子域名 

rewritecond %{http_host} ^www.(([a-z0-9_]+.)?example.com)$ [nc]

rewriterule .? http://%1%{request_uri} [r=301,l]

這里,當匹配到1%變量以后,子域名才會在%2(內部原子)中抓取到,而我們需要的正是這個%1變量。

4.防止圖片盜鏈 

一些站長不擇手段的將你的圖片盜鏈在他們網站上,耗費你的帶寬。你可以加一下代碼阻止這種行為。

rewritecond %{http_referer} !^$

rewritecond %{http_referer} !^http://(www.)?example.com/ [nc]

rewriterule .(gif|jpg|png)$ – [f]

如果{http_referer}值不為空,或者不是來自你自己的域名,這個規則用[f]flag阻止以gif|jpg|png 結尾的url

如果對這種盜鏈你是堅決鄙視的,你還可以改變圖片,讓訪問盜鏈網站的用戶知道該網站正在盜用你的圖片。

rewritecond %{http_referer} !^$

rewritecond %{http_referer} !^http://(www.)?example.com/.*$ [nc]

rewriterule .(gif|jpg|png)$ http://www.example.com/hotlinked.gif [r=301,l]

除了阻止圖片盜鏈鏈接,以上規則將其盜鏈的圖片全部替換成了你設置的圖片。

你還可以阻止特定域名盜鏈你的圖片:

rewritecond %{http_referer} !^http://(www.)?leech_site.com/ [nc]

rewriterule .(gif|jpg|png)$ – [f,l]

這個規則將阻止域名黑名單上所有的圖片鏈接請求。

當然以上這些規則都是以{http_referer}獲取域名為基礎的,如果你想改用成ip地址,用{remote_addr}就可以了。

5.如果文件不存在重定向到404頁面 

如果你的主機沒有提供404頁面重定向服務,那么我們自己創建。

rewritecond %{request_filename} !-f

rewritecond %{request_filename} !-d

rewriterule .? /404.php [l]

這里-f匹配的是存在的文件名,-d匹配的存在的路徑名。這段代碼在進行404重定向之前,會判斷你的文件名以及路徑名是否存在。你還可以在404頁面上加一個?url=$1參數:

rewriterule ^/?(.*)$ /404.php?url=$1 [l]

這樣,你的404頁面就可以做一些其他的事情,例如默認信心,發一個郵件提醒,加一個搜索,等等。

6.重命名目錄

如果你想在網站上重命名目錄,試試這個:

rewriterule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [r=301,l]

在規則里我添加了一個“.”(注意不是代表得所有字符,前面有轉義符)來匹配文件的后綴名。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产午夜精品一区二区三区在线观看 | 免费黄色一级网站 | 国产理论视频在线观看 | 日本aⅴ在线 | 中国产一级毛片 | 中文字幕一区2区 | 精品亚洲va在线va天堂资源站 | 九九热精品视频在线播放 | 成人免费网站在线观看视频 | 羞羞视频免费视频欧美 | 久久人人爽人人爽人人片av免费 | 国产精品视频免费网站 | 国产黄色一区二区 | 国产一区在线观看视频 | 欧美成人免费一级 | 精品国产一区二区三区四区阿崩 | 色婷婷久久久亚洲一区二区三区 | 92看片淫黄大片一级 | 欧产日产国产精品99 | 亚洲男人一区 | 91成人亚洲 | 姑娘第5集高清在线观看 | 国产xxxx免费 | 性爱视频免费 | 色婷婷久久久久久 | 91av大片 | 国产精品视频一区二区三区四区国 | 成年免费看 | 国产成人高潮免费观看精品 | 欧美中文字幕在线视频 | 免费看成年人网站 | 成人福利在线看 | 毛片网站视频 | 在线观看国产一区二区 | 欧美性生活视频免费看 | 久久精品中文字幕一区二区三区 | 国产精品嘿咻嘿咻在线播放 | 亚洲精品成人久久 | 国产成人在线一区 | 日韩精品中文字幕一区二区三区 | 视频一区二区在线播放 |