开发者

How do I add additional mod_rewrite rules on a wordpress site?

开发者 https://www.devze.com 2023-03-09 09:51 出处:网络
I have uploaded a file \'events.php\' to my wordpress site (the wordpress is installed in my root directory).

I have uploaded a file 'events.php' to my wordpress site (the wordpress is installed in my root directory).

I would like to make a mod_rewrite to this file so that one may go to mydomain.com/events

I tried simply doing something like this:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule %events$ events.php [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Which didn't work.

I also found I could add rewrite tags via wordpress using its inbuilt functions like so:

add_rewrite_rule('^events?开发者_如何转开发','/events.php','top');

This also didn't work - I simply end up on my default 404 page as though its reached a non-existent page within my wordpress.

What am I missing here?


Correct me if I’m wrong, but if all you want is for someone who goes to example.com/events to be directed to example.com/events.php, than you can just do a redirect like so.

Redirect 301 /events http://www.example.com/events.php


Try the following:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^events /events.php [L]
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

The directive that you had set for the URL would not match:

RewriteRule %events$ events.php [L]

Also, the directive is now below the condition that checks for an existing file, so that it never matches a direct request for events.php.

0

精彩评论

暂无评论...
验证码 换一张
取 消