0

我在根目录中安装了 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>

我尝试了简单的重定向规则,但文件夹在 URL 中公开。

Redirect 301 /about.php /inc/php/about.php

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

4

1 回答 1

1

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

当然,这意味着您不能拥有与 php 文件和例如 css 文件相同的基本文件名。因为如果请求是www.domain.com/about,那应该映射到/inc/php/about.phpor/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]
于 2013-11-07T06:01:43.383 回答