gpt4 book ai didi

apache - URL 扩展隐藏 : rewrite vs redirect

转载 作者:行者123 更新时间:2023-12-04 18:05:39 24 4
gpt4 key购买 nike

我已经阅读了很多问题和答案,但我无法决定哪一个更好,或者如何结合使用这些扩展隐藏方式。
我想要的 是像 stackoverflow 一样进行 url 重写!那么我还应该做什么才能拥有这些规则:

url: example.com/file.anyEXT...  show content of => 404
url: example.com/unknown-Cat... show content of => 404

url: example.com/cat1 show content of => example.com/cat1/index.php
url: example.com/cat1/index.php show content of => 404
url: example.com/cat1/any...any show content of => 404
url: example.com/cat1/11/title show content of => example.com/cat1/single.php (post id 11)

但我的 htaccess 文件就像这样:

url: example.com/file.anyEXT     
show content of => example.com/index.php (should show 404)

url: example.com/unknown-Cat
show content of => example.com/index.php (should show 404)

url: example.com/unknown-Cat/
show broken content of => index.php => cant load css and js => (should show 404)

url: example.com/file.anyEXT/
show broken content of => index.php => cant load css and js => (should show 404)

url: example.com/cat1
show content of => example.com/cat1/index.php (works fine!)

url: example.com/cat1/index.php
show content of => example.com/cat1/index.php (should show 404)

url: example.com/cat1/any...any
show content of => 404 (works fine!)

url: example.com/cat1/11/title
show content of => example.com/cat1/single.php (post id 11) (works fine!)

我有什么

mydomain-|
|
|
|__cat1-|__.htaccess // cat1 htaccess
| |__index.php
| |__single.php
|
|__cat2-|__.htaccess // cat2 htaccess
| |__index.php
| |__single.php
...
|__.htaccess // root htaccess
|__index.php // home-page

我的 htaccess 基于最推荐的方式:

<IfModule mod_rewrite.c>

# Enable Rewrite Engine
RewriteEngine On
RewriteBase /

<files ".htaccess">
order allow,deny
deny from all
</files>
Options All -Indexes

# Redirect from www.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

</IfModule>

这是我在我的根文件夹和所有子文件夹中使用的,我有两个文件 index.phpsingle.php 我有 .htaccess 之类的这在每个子文件夹中:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cat1/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d+)/(.+?)/?$ single.php?id=$1&title=$2 [L,QSA]

</IfModule>

最佳答案

您可以使用:

DocumentRoot/.htaccess:

<IfModule mod_rewrite.c>

<files ".htaccess">
order allow,deny
deny from all
</files>
Options All -Indexes

RewriteEngine On
RewriteBase /

# Redirect from www.
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,NE,R=301]

# 404 for index.php in URL
RewriteCond %{THE_REQUEST} /index\.php[\s?/] [NC]
RewriteRule ^ - [L,R=404]

</IfModule>

/cat1/.htaccess:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cat1/

RewriteCond %{THE_REQUEST} /index\.php[?\s] [NC]
RewriteRule ^index\.php$ - [L,R=404]

RewriteRule ^(\d+)/([^/]+)/?$ single.php?id=$1&title=$2 [L,QSA]

</IfModule>

关于apache - URL 扩展隐藏 : rewrite vs redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27289388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com