重写子文件夹的url条件

时间:2016-07-12 11:50:11

标签: apache .htaccess mod-rewrite url-rewriting

我这里有一个htaccess文件

String updateTableSQL = "UPDATE DBUSER SET USERNAME = ? WHERE USER_ID = ?"; PreparedStatement preparedStatement = dbConnection.prepareStatement(updateTableSQL); preparedStatement.setString(1, "mkyong_new_value"); preparedStatement.setInt(2, 1001); // execute insert SQL stetement preparedStatement .executeUpdate();

我想让这个条件(对于public_html中的主要htacces)也适用于子文件夹/en/.htaccess

en

我的htaccess就是这样开始的。

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]

最后一行将链接正确转换为www.example.com/hot-events

但我也希望它能让第一个条件发挥作用。 我的意思是当有人使用此链接时 RewriteEngine on RewriteBase /en/ RewriteRule ^hot-events/?$ hot-events.php [NC,L] 它应该通过这个文件运行查询

https://example.com/en/events/123/abc

目录结构

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

1 个答案:

答案 0 :(得分:1)

这是因为您的重写目标不正确。您正在重写/events/eventDetails.php而不是/en/events/eventDetails.php,请尝试:

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]