Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在wordpress中使用htaccess限制访问一页_Php_Wordpress_Apache_.htaccess - Fatal编程技术网

Php 在wordpress中使用htaccess限制访问一页

Php 在wordpress中使用htaccess限制访问一页,php,wordpress,apache,.htaccess,Php,Wordpress,Apache,.htaccess,我在Wordpresstheme\u目录/page rsvp.php中有一个页面,我需要.htaccess的密码保护。我正在本地使用MAMP PRO开发这个 我在theme_目录中有一个.htaccess和.htpasswd文件。我在.htaccess文件中有以下内容,但它不起作用。每当我转到localhost:8888/site/rsvp时,都不会显示身份验证提示 <Files “page-rsvp.php”> AuthName "Username and password

我在Wordpress
theme\u目录/page rsvp.php
中有一个页面,我需要.htaccess的密码保护。我正在本地使用MAMP PRO开发这个

我在theme_目录中有一个.htaccess和.htpasswd文件。我在.htaccess文件中有以下内容,但它不起作用。每当我转到localhost:8888/site/rsvp时,都不会显示身份验证提示

 <Files “page-rsvp.php”>
   AuthName "Username and password required"
   AuthUserFile ./.htpasswd
   Require valid-user
   AuthType Basic
 </Files>

AuthName“需要用户名和密码”
AuthUserFile./.htpasswd
需要有效用户
AuthType Basic
wordpress安装的根目录中当然有一个.htaccess文件,它看起来像这样:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /thepowerfulnow/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /thepowerfulnow/index.php [L]
</IfModule>

# END WordPress
#开始WordPress
重新启动发动机
重写基础/电源fulnow/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/thepowerfulnow/index.php[L]
#结束WordPress

如何仅使用第一个.htaccess文件(theme_目录中的文件)使其工作?我需要有这个主题是模块化的。我对.htaccess文件非常陌生。谢谢大家!

您已将身份验证添加到主题目录中,因此只有使用如下URL直接访问主题文件时,身份验证才会起作用:

http://localhost:8888/site/wp-content/themes/theme_directory/page-rsvp.php
如果要限制对页面URL的访问(例如,
/site/rsvp
),则需要使用不同的规则。您可以在WordPress根目录的主
.htaccess
文件末尾添加以下行

# Set an env variable "auth" if the URI starts with "/site/rsvp"
SetEnvIf Request_URI ^/site/rsvp auth=1

AuthName "User and password required"
AuthType Basic
AuthUserFile "./.htpasswd"

# First, allow anyone
Order Allow,Deny
Satisfy any
Allow from all
Require valid-user
# Then, deny only if auth is required
Deny from env=auth
请记住将
.htpasswd
文件的副本保留在同一目录中,或使用
AuthUserFile
指令设置该文件的路径

替代解决方案 我最初的回答使用了
指令来过滤要限制的URL,但是它在
.htaccess
文件中不起作用。仅在服务器配置或虚拟主机下。请检查此处的上下文:

如果您希望使用以下限制规则,并且您在服务器中有访问权限,则需要将其添加到某些上下文(服务器配置或虚拟主机)。Apache的配置文件通常位于
/etc/httpd
/etc/apache2
目录中

<Location "/site/rsvp"> # Where /site/rsvp is the URL you want to restrict
    AuthName "Username and password required"
    AuthUserFile /path/to/.htpasswd
    Require valid-user
    AuthType Basic
</Location>
#其中/site/rsvp是要限制的URL
AuthName“需要用户名和密码”
AuthUserFile/path/to/.htpasswd
需要有效用户
AuthType Basic

您是否尝试过使用
而不是非ascii
?好主意!我需要新眼镜:(不幸的是,这没有解决问题。甚至尝试删除引号,但也没有解决问题。感谢您的帮助!谢谢!感谢您的详细回复。我尝试了两种解决方案,但都不起作用。我是.htaccess的新手,但我猜这可能与我在OP.as中提供的第二个.htaccess文件中的某些内容有关它会重新配置站点永久链接。在您的第一个解决方案中,我将“站点”替换为相应的文件夹名称,即站点名称和“主题目录”"使用主题名称,但是没有运气,这并没有破坏我的网站的css。第二个解决方案我尝试了相对路径和绝对路径,但都破坏了我的网站的css。有什么建议吗?谢谢!!只是确认一下,你是否尝试将
指令添加到你的main.htaccess?如果main是指主题中的那个_目录然后是的。我还没有用wordpress安装的根目录中的目录尝试过这个。我应该吗?是的。wordpress根目录中的目录是你的主目录
.htaccess
。尝试将它添加到文件的末尾,在注释后的一行中:
#end wordpress
谢谢你的回复!我尝试了你的建议,但它创建了一个500内部服务器错误。我希望url错误。我需要限制的文件的完整路径是
/applications/mamp/htdocs/thepowerfulnow/wp content/themes/thepowerfulnow/page rsvp.php
,根.htaccess文件位于
应用程序/mamp/htdocs/thepowerfulnow
中。我提供的这个.htaccess文件的url是
以及