rewrite url condition for subfolder

▼魔方 西西 提交于 2019-12-24 00:38:19

问题


I have an htaccess file here

/en/.htaccess

and i would like to make this condition (which is for the main htacces inside public_html) to work also for the subfolder en

RewriteCond %{THE_REQUEST} /events/eventDetails\.php\?id=(.+)&name=(.+)\sHTTP [NC]
RewriteRule ^ /events/%1/%2? [L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^events/([^/]+)/([^/]+)/?$ /events/eventDetails.php?id=$1&name=$2 [L]

my htaccess starts like this.

RewriteEngine on
RewriteBase /en/
RewriteRule    ^hot-events/?$    hot-events.php    [NC,L] 

The last line translates the link correctly as www.example.com/hot-events

But i also want it to make the first condition work. I mean when someone uses this link https://example.com/en/events/123/abc it should run the query by this file

https://example.com/en/events/eventDetails.php?id=123&name=abc

Directory Structure

   root/
   ├── .htaccess
   ├── index.php
   ├── events/
   │     └── eventDetails.php
   └── en/
        ├── .htaccess
        ├── index.php
        └── events/
                └── eventDetails.php

回答1:


It's because your rewrite destination is incorrect. You are rewriting to /events/eventDetails.php instead of /en/events/eventDetails.php , try :

RewriteEngine on
RewriteBase /en/
RewriteRule    ^hot-events/?$    hot-events.php    [NC,L] 
RewriteCond %{THE_REQUEST} /en/events/eventDetails\.php\?id=([^&]+)&name=(.+)\sHTTP [NC]
RewriteRule ^ /en/events/%1/%2? [L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^events/([^/]+)/([^/]+)/?$ /en/events/eventDetails.php?id=$1&name=$2 [L]


来源:https://stackoverflow.com/questions/38328110/rewrite-url-condition-for-subfolder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!