我已经阅读了很多问题和答案,但我无法决定哪一个更好或如何使用这些扩展隐藏方式的组合。
我想要的是就是有一个像这样的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.php
and single.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>