在1and1共享主机上使用mod_rewrite()

时间:2016-08-12 15:19:28

标签: php wordpress apache .htaccess mod-rewrite

更新

我无法将此规则添加到.htaccess文件中,最后我使用了Wordpress Rewrite类并添加了一个add_rewrite_rule()来完成重写,这非常有效。

原帖

我一直试图将.htaccess规则放在一起,将部分路径移动到查询字符串。根据{{​​3}}。

我的网站空间的根目录中有两个文件夹,一个用于www.mydomain.com,另一个用于test.mydomain.com。我的.htaccess文件位于test.mydomain.com文件夹中,我想将test.mydomain.com/images/parm1/parm2重写为test.mydomain.com/images/?gwpw=parm2&gwpi=parm1

如果我在.htaccess文件中放入垃圾,我会收到500内部服务器错误,因此我知道正在读取该文件。我在Wordpress的.htaccess中也有一些使用mod_rewrite()的现有规则,如果我注释掉,如果您尝试访问test.mydomain.com/somegarbage,请停止网站重定向到404错误页面。所以我知道mod_rewrite()已启用。

我已经读过我需要设置Options +FollowSymLinks -MultiViews,所以我的整个规则是:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^/images/([^/]*)/([^/]*) /images/?gwpw=$1&gwpi=$2 [PT]

我在文件的不同部分尝试了这个,删除了/images/?gwpw=...的前导斜杠。我已经尝试添加一条规则,我认为应该将每个请求重写为不同的页面,例如RewriteRule ^/* /somewhere,但我似乎无法重写任何工作。

由于这是共享服务器,我无法访问httpd.conf

我的整个.htaccess文件目前看起来像这样:

<IfModule php5_module>
    php_flag session.cookie_httponly on
</IfModule>

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^/images/([^/]*)/([^/]*) /images/?gwpw=$1&gwpi=$2 [PT]

# 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

# Wordfence WAF
<Files ".user.ini">
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order deny,allow
    Deny from all
</IfModule>
</Files>

对于.htaccess规则,我是一个完整的新手,所以任何帮助都将非常感激。我显然做错了什么但我再也看不到树木了!

0 个答案:

没有答案