cari
Rumahpembangunan bahagian belakangtutorial phpApache 相关 mod_rewrite ,RewriteCond,{HTTP_HOST}_PHP教程

Apache 相关 mod_rewrite ,RewriteCond,{HTTP_HOST}_PHP教程

Jul 20, 2016 am 11:13 AM
apachehhosthttpmodrewriterewritecondtambahnama domaintandaBerkaitan

1.给子域名加www标记 

<span RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.<span com$ [NC] 
RewriteCond </span>%{HTTP_HOST} !^www\.<span  [NC] 
RewriteRule </span>.? http:<span //</span><span www.%1example.com%{REQUEST_URI} [R=301,L] </span>
这个规则抓取二级域名的%1变量,如果不是以www开始,那么就加www,以前的域名以及{REQUEST_URI}会跟在其后。</span>

2.去掉域名中的www标记 

<span RewriteCond %{HTTP_HOST} !^example\.<span com$ [NC] 
RewriteRule </span>.? http:<span //</span><span example.com%{REQUEST_URI} [R=301,L] </span></span>

 

3.去掉www标记,但是保存子域名 

<span RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.<span com)$ [NC] 
RewriteRule </span>.? http:<span //</span><span %1%{REQUEST_URI} [R=301,L] </span>
这里,当匹配到1%变量以后,子域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。 </span>

 



4.防止图片盗链 

<span <span 一些站长不择手段的将你的图片盗链在他们网站上,耗费你的带宽。你可以加一下代码阻止这种行为。 
RewriteCond </span>%{HTTP_REFERER} !^<span $ 
RewriteCond </span>%{HTTP_REFERER} !^http:<span //</span><span (www\.)?example\.com/ [NC] </span>
RewriteRule \.(gif|jpg|png)$ -<span  [F] 
如果{HTTP_REFERER}值不为空,或者不是来自你自己的域名,这个规则用[F]FLAG阻止以gif</span>|jpg|<span png 结尾的URL 
如果对这种盗链你是坚决鄙视的,你还可以改变图片,让访问盗链网站的用户知道该网站正在盗用你的图片。 
RewriteCond </span>%{HTTP_REFERER} !^<span $ 
RewriteCond </span>%{HTTP_REFERER} !^http:<span //</span><span (www\.)?example\.com/.*$ [NC] </span>
RewriteRule \.(gif|jpg|png)$ 你的图片地址 [R=301,<span L] 
除了阻止图片盗链链接,以上规则将其盗链的图片全部替换成了你设置的图片。 
你还可以阻止特定域名盗链你的图片: 
RewriteCond </span>%{HTTP_REFERER} !^http:<span //</span><span (www\.)?leech_site\.com/ [NC] </span>
RewriteRule \.(gif|jpg|png)$ - [F,<span L] 
这个规则将阻止域名黑名单上所有的图片链接请求。 
当然以上这些规则都是以{HTTP_REFERER}获取域名为基础的,如果你想改用成IP地址,用{REMOTE_ADDR}就可以了。</span></span>

 

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

<span <span 如果你的主机没有提供404页面重定向服务,那么我们自己创建。 
RewriteCond </span>%{REQUEST_FILENAME} !-<span f 
RewriteCond </span>%{REQUEST_FILENAME} !-<span d 
RewriteRule </span>.? /404.<span php [L] 
这里</span>-f匹配的是存在的文件名,-d匹配的存在的路径名。这段代码在进行404重定向之前,会判断你的文件名以及路径名是否存在。你还可以在404页面上加一个?url=<span $1参数: 
RewriteRule </span>^/?(.*)$ /404.php?url=$1<span  [L] 
这样,你的404页面就可以做一些其他的事情,例如默认信心,发一个邮件提醒,加一个搜索,等等。</span></span>

 



6.重命名目录 

<span <span 如果你想在网站上重命名目录,试试这个: 
RewriteRule </span>^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,<span L] 
在规则里我添加了一个&ldquo;</span>.&rdquo;(注意不是代表得所有字符,前面有转义符)来匹配文件的后缀名。 </span>


7.将.html后缀名转换成.php 

<span 前提是.<span html文件能继续访问的情况下,更新你的网站链接。 
RewriteRule </span>^/?([a-z/]+)\.html$ $1.<span php [L] 
这不是一个网页重定向,所以访问者是不可见的。让他作为一个永久重定向(可见的),将FLAG修改[R</span>=301,L]。 </span>


8.创建无文件后缀名链接 

<span 如果你想使你的PHP网站的链接更加简洁易记-或者隐藏文件的后缀名,试试这个:<span  
RewriteRule </span>^/?([a-z]+)$ $1.<span php [L] 
如果网站混有PHP以及HTML文件,你可以用RewriteCond先判断该后缀的文件是否存在,然后进行替换: 
RewriteCond </span>%{REQUEST_FILENAME}.php -<span f 
RewriteRule </span>^/?([a-zA-Z0-9]+)$ $1.<span php [L] 
RewriteCond </span>%{REQUEST_FILENAME}.html -<span f 
RewriteRule </span>^/?([a-zA-Z0-9]+)$ $1.<span html [L] 
如果文件是以</span>.php为后缀,这条规则将被执行。</span>

 

9.检查查询变量里的特定参数 

<span <span 如果在URL里面有一个特殊的参数,你可用RewriteCond鉴别其是否存在: 
RewriteCond </span>%{QUERY_STRING} !uniquekey=<span  
RewriteRule </span>^/?script_that_requires_uniquekey\.php$ other_script.php [QSA,<span L] 
以上规则将检查{QUERY_STRING}里面的uniquekey参数是否存在,如果{REQUEST_URI}值为script_that_requires_uniquekey,将会定向到新的URL。 </span></span>


10.删除查询变量 

<span <span Apache的mod_rewrite模块会自动辨识查询变量,除非你做了以下改动: 
a)</span>.分配一个新的查询参数(你可以用[QSA,<span L]FLAG保存最初的查询变量) 
b)</span>.在文件名后面加一个&ldquo;?&rdquo;(比如index.php?)。符号&ldquo;?&rdquo;不会在浏览器的地址栏里显示。</span>

 

11.用新的格式展示当前URI 

<span 如果这就是我们当前正在运行的URLs:/index.php?id=nnnn。我们非常希望将其更改成/nnnn并且让搜索引擎以新格式展现。首先,我们为了让搜索引擎更新成新的,得将旧的URLs重定向到新的格式,但是,我们还得保证以前的index.<span php照样能够运行。是不是被我搞迷糊了? 
实现以上功能,诀窍就在于在查询变量中加了一个访问者看不到的标记符&ldquo;marker&rdquo;。我们只将查询变量中没有出现&ldquo;marker&rdquo;标记的链接进行重定向,然后将原有的链接替换成新的格式,并且通过[QSA]FLAG在已有的参数加一个&ldquo;marker&rdquo;标记。以下为实现的方式: 
RewriteCond </span>%{QUERY_STRING} !<span marker 
RewriteCond </span>%{QUERY_STRING} id=([-a-zA-Z0-9_+]+<span ) 
RewriteRule </span>^/?index\.php$ %1? [R=301,<span L] 
RewriteRule </span>^/?([-a-zA-Z0-9_+]+)$ index.php?marker &id=$1<span  [L]
这里,原先的URL:http</span>:<span //</span><span www.example.com/index.php?id=nnnn,不包含marker,所以被第一个规则永久重定向到http://www.example.com/nnnn,第二个规则将http://www.example.com/nnnn反定向到http://www.example.com/index.php?marker&id=nnnn,并且加了marker以及id=nnnn两个变量,最后mod_rewrite就开始进行处理过程。</span>
第二次匹配,marker被匹配,所以忽略第一条规则,这里有一个&ldquo;.&rdquo;字符会出现在http:<span //</span><span www.example.com/index.php?marker &id=nnnn中,所以第二条规则也会被忽略,这样我们就完成了。</span>
注意,这个解决方案要求Apache的一些扩展功能,所以如果你的网站放于在共享主机中会遇到很多障碍。</span>


12.保证安全服务启用 

<span <span Apache可以用两种方法辨别你是否开启了安全服务,分别引用{HTTPS}和{SERVER_PORT}变量: 
RewriteCond </span>%{REQUEST_URI} ^secure_page\.<span php$ 
RewriteCond </span>%{HTTPS} !<span on 
RewriteRule </span>^/?(secure_page\.php)$ https:<span //</span><span www.example.com/$1 [R=301,L] </span>
以上规则测试{REQUEST_URI}值是否等于我们的安全页代码,并且{HTTPS}不等于on。如果这两个条件同时满足,请求将被重定向到安全服务URI.<span 另外你可用{SERVER_PORT}做同样的测试,443是常用的安全服务端口 
RewriteCond </span>%{REQUEST_URI} ^secure_page\.<span php$ 
RewriteCond </span>%{SERVER_PORT} !^443<span $ 
RewriteRule </span>^/?(secure_page\.php)$ https:<span //</span><span www.example.com/$1 [R=301,L]</span></span>

 

 

13.在特定的页面上强制执行安全服务 

<span <span 遇到同一个服务器根目录下分别有一个安全服务域名和一个非安全服务域名,所以你就需要用RewriteCond 判断安全服务端口是否占用,并且只将以下列表的页面要求为安全服务: 
RewriteCond </span>%{SERVER_PORT} !^443<span $ 
RewriteRule </span>^/?(page1|page2|page3|page4|page5)$ https:<span //</span><span www.example.com/%1[R=301,L] </span>
<span 以下是怎样将没有设置成安全服务的页面返回到80端口: 
RewriteCond </span>%{ SERVER_PORT } ^443<span $ 
RewriteRule </span>!^/?(page6|page7|page8|page9)<span $http</span>:<span //</span><span www.example.com%{REQUEST_URI} [R=301,L]<br /><br />                                                      <br /></span></span>

                                                                                 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440353.htmlTechArticle1.给子 域名 加www标记 %{HTTP_HOST} !^www\. .? http: 这个规则抓取二级域名的%1变量,如果不是以www开始,那么就加www,以前的域名以及{REQUEST_...
Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
PHP vs Python: Memahami PerbezaanPHP vs Python: Memahami PerbezaanApr 11, 2025 am 12:15 AM

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

PHP: Adakah ia mati atau hanya menyesuaikan diri?PHP: Adakah ia mati atau hanya menyesuaikan diri?Apr 11, 2025 am 12:13 AM

PHP tidak mati, tetapi sentiasa menyesuaikan diri dan berkembang. 1) PHP telah menjalani beberapa lelaran versi sejak tahun 1994 untuk menyesuaikan diri dengan trend teknologi baru. 2) Ia kini digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan bidang lain. 3) Php8 memperkenalkan pengkompil JIT dan fungsi lain untuk meningkatkan prestasi dan pemodenan. 4) Gunakan OPCACHE dan ikut piawaian PSR-12 untuk mengoptimumkan prestasi dan kualiti kod.

Masa Depan PHP: Adaptasi dan InovasiMasa Depan PHP: Adaptasi dan InovasiApr 11, 2025 am 12:01 AM

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

Bilakah anda menggunakan sifat berbanding kelas abstrak atau antara muka dalam PHP?Bilakah anda menggunakan sifat berbanding kelas abstrak atau antara muka dalam PHP?Apr 10, 2025 am 09:39 AM

Dalam PHP, sifat sesuai untuk situasi di mana penggunaan semula kaedah diperlukan tetapi tidak sesuai untuk warisan. 1) Ciri membolehkan kaedah multiplexing dalam kelas untuk mengelakkan pelbagai kerumitan warisan. 2) Apabila menggunakan sifat, anda perlu memberi perhatian kepada konflik kaedah, yang dapat diselesaikan melalui alternatif dan sebagai kata kunci. 3) Tua yang berlebihan harus dielakkan dan tanggungjawab tunggalnya harus dikekalkan untuk mengoptimumkan prestasi dan meningkatkan pemeliharaan kod.

Apakah bekas suntikan ketergantungan (DIC) dan mengapa menggunakan satu dalam PHP?Apakah bekas suntikan ketergantungan (DIC) dan mengapa menggunakan satu dalam PHP?Apr 10, 2025 am 09:38 AM

Kontena Suntikan Ketergantungan (DIC) adalah alat yang menguruskan dan menyediakan kebergantungan objek untuk digunakan dalam projek PHP. Manfaat utama DIC termasuk: 1. Decoupling, membuat komponen bebas, dan kod itu mudah dikekalkan dan diuji; 2. Fleksibiliti, mudah untuk menggantikan atau mengubah suai kebergantungan; 3. Keseluruhan, mudah untuk menyuntik objek mengejek untuk ujian unit.

Terangkan SPL SPLFixedArray dan ciri -ciri prestasinya berbanding dengan susunan PHP biasa.Terangkan SPL SPLFixedArray dan ciri -ciri prestasinya berbanding dengan susunan PHP biasa.Apr 10, 2025 am 09:37 AM

SplfixedArray adalah pelbagai saiz tetap dalam PHP, sesuai untuk senario di mana prestasi tinggi dan penggunaan memori yang rendah diperlukan. 1) Ia perlu menentukan saiz apabila membuat untuk mengelakkan overhead yang disebabkan oleh pelarasan dinamik. 2) Berdasarkan pelbagai bahasa C, secara langsung mengendalikan memori dan kelajuan akses cepat. 3) Sesuai untuk pemprosesan data berskala besar dan persekitaran sensitif memori, tetapi ia perlu digunakan dengan berhati-hati kerana saiznya tetap.

Bagaimana PHP mengendalikan fail memuat naik dengan selamat?Bagaimana PHP mengendalikan fail memuat naik dengan selamat?Apr 10, 2025 am 09:37 AM

PHP mengendalikan fail muat naik melalui pembolehubah fail $ \ _. Kaedah untuk memastikan keselamatan termasuk: 1. Semak kesilapan muat naik, 2. Sahkan jenis dan saiz fail, 3. Mencegah penindasan fail, 4. Pindahkan fail ke lokasi storan tetap.

Apakah pengendali pengendali coalescing null (??) dan pengendali tugasan comelan null (?? =)?Apakah pengendali pengendali coalescing null (??) dan pengendali tugasan comelan null (?? =)?Apr 10, 2025 am 09:33 AM

Dalam JavaScript, anda boleh menggunakan NullcoalescingOperator (??) dan NullcoalescingAssignmentOperator (?? =). 1.? Menerapkan semula operan pertama yang tidak berselisih atau tidak ditentukan. 2.?? Pengendali ini memudahkan logik kod, meningkatkan kebolehbacaan dan prestasi.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.