.htaccess重定向&;在url中隐藏目录路径

.htaccess重定向&;在url中隐藏目录路径,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在根目录中安装了wordpress。我想在我的域中使用一些单独的php文件作为一个页面,为此我创建了一个单独的目录,其中包含用于服务php文件的所有文件,其目录结构如下: 根文件夹包含所有wordpress文件 我想用作页面的目录 /inc/css/ /inc/php/ /inc/img/ PHP文件中的CSS样式表文件目录位置是。/inc/CSS一步后退&然后是CSS文件夹。 我想从URL中隐藏文件夹,例如从根目录提供文件(从URL中隐藏/inc/php/,/inc/css

我在根目录中安装了wordpress。我想在我的域中使用一些单独的php文件作为一个页面,为此我创建了一个单独的目录,其中包含用于服务php文件的所有文件,其目录结构如下:

根文件夹包含所有wordpress文件

我想用作页面的目录

/inc/css/    
/inc/php/    
/inc/img/
PHP文件中的CSS样式表文件目录位置是
。/inc/CSS
一步后退&然后是CSS文件夹。 我想从URL中隐藏文件夹,例如从根目录提供文件(从URL中隐藏/inc/php/,/inc/css/&/inc/img/文件夹)

例如:www.domain.com/inc/php/about.php将此URL重定向并重写到www.domain.com/about

我的根目录中的
.htaccess

RewriteEngine On
RewriteBase /

# disable directory browsing
Options -Indexes

# Prevent hotlinking of images htaccesstools.com/hotlink-protection
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$ - [NC,F,L]

RewriteRule ^login$ http://domain.com/wp-login.php [NC,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<files wp-config.php>
order allow,deny
deny from all
</files>

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
重新编写引擎打开
重写基/
#禁用目录浏览
选项-索引
#防止图像热链接htaccesstools.com/hotlink-protection
重写cond%{HTTP_REFERER}^$
重写cond%{HTTP_REFERER}^http(s)?:/(www\)?domain.com[NC]
重写规则\(jpg | jpeg | png | gif | ico | pdf | flv | jpg | jpeg | mp3 | mpg | mp4 | mov | wmv | png | gif | swf | css | js)$[NC,F,L]
重写规则^login$http://domain.com/wp-login.php [北卡罗来纳州,L]
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
命令允许,拒绝
全盘否定
命令允许,拒绝
全盘否定
满足所有
我尝试过简单的重定向规则,但文件夹在URL中公开

重定向301/about.php/inc/php/about.php

此外,我在PHP文件夹中还有一些文件,我希望在这些文件上应用相同的规则,即重定向和重写URL从URL隐藏文件夹&删除PHP扩展名

www.domain.com/inc/php/about.php将此URL重定向并重写为www.domain.com/about

当然,这意味着您不能拥有相同的基本文件名,即php文件和css文件。既然请求是www.domain.com/about,那么它应该映射到
/inc/php/about.php
还是
/inc/css/about.css
?还是图像?如果两个文件都有,则只会映射到一个文件

但如果这确实是您想要的,请尝试在您拥有的热链接规则之后添加以下规则:

# Externally redirect requests for /inc/
RewriteCond %{THE_REQUEST} \ /inc/(php|img|css)/([^\?\ ]+)\.(php|css|jpe?g|png|gif) [NC]
RewriteRule ^ /%2 [L,R=301]

# Check if the request is a php file:
RewriteCond %{DOCUMENT_ROOT}/inc/php%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ /inc/php/$1.php [L]

# Check if the request is a css file:
RewriteCond %{DOCUMENT_ROOT}/inc/css%{REQUEST_URI}.css -f
RewriteRule ^(.*)$ /inc/css/$1.css [L]

# Check if the request is a jpeg file:
RewriteCond %{DOCUMENT_ROOT}/inc/img%{REQUEST_URI}.jpg -f
RewriteRule ^(.*)$ /inc/img/$1.jpg [L]

# Check if the request is a gif file:
RewriteCond %{DOCUMENT_ROOT}/inc/img%{REQUEST_URI}.gif -f
RewriteRule ^(.*)$ /inc/img/$1.gif [L]

# Check if the request is a png file:
RewriteCond %{DOCUMENT_ROOT}/inc/img%{REQUEST_URI}.png -f
RewriteRule ^(.*)$ /inc/img/$1.png [L]

Hi@jon Lin谢谢你的回答,上面的代码确实有效,目录是隐藏的,但是css不是。这就是我在about.php文件
中链接它的方式。你说只有一种类型的文件可以从
/inc/
映射到
php
css
这就是为什么不应用css的原因吗?@SimonKB如果你是php页面名为
about.php
,并且它在名为
about.css
的文件中使用css,然后,它们都使用
about
,因此只能映射到其中一个。规则的顺序决定了哪个规则。如果这不是问题,那么可能是相对URL的问题。多谢mate救了我一天,是的,css的相对路径似乎是问题所在。所以我把它修好了。你有一头好长发。