0

我希望我的 URL 看起来像这样:

https://example-test.example.com/example-application_1.1/index.php?page=pagename&action=actionname

但是用户应该只输入:

https://example-test.example.com/example-application_1.1/pagename/actionname/

是否可以使用 .htaccess 中的 RewriteRule 来运行它?我想不通。

我的 .htaccess 文件现在看起来像这样:

RewriteEngine on

RewriteBase /

RewriteCond %{HTTP_HOST} ^example-test\.example\.com
RewriteRule ^example-application_1\.1/([^/]+)/([^/]+)/?$ /example-application_1\.1/index.php?page=$1&action=$2 [QSA,L]
4

3 回答 3

1

我做的:

RewriteEngine On

RewriteRule "^([^/]+)/([^/]+)/([^/]+)" index.php?page=$1&action=$2&$3 [L]
RewriteRule "^([^/]+)/([^/]+)/" index.php?page=$1&action=$2 [L]

因此,如果用户输入以下内容:

https://example-prefix.example.com/pagename/actionname/id=123&category=456

URL会变成这样:

https://example-prefix.example.com/index.php?page=pagename&action=actionname&id=123&category=456

如果您仍然想访问您的文件,只需执行以下操作:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^([^/]+)/([^/]+)/([^/]+)" index.php?page=$1&action=$2&$3 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^([^/]+)/([^/]+)/" index.php?page=$1&action=$2 [L]
于 2018-01-08T14:20:34.597 回答
0

我认为你可以使用:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^([^/]+)/([^/]+)" index.php?page=$1&action=$2 [L]
于 2018-01-08T13:15:12.007 回答
0
RewriteEngine on
RewriteRule ^example-application_1.1/([^/]*)/([^/]*)/$ /example-application_1.1/?page=$1&action=$2 [L]

这应该有效。

在 index.php 中,您可以获得变量:$_GET['page']& $_GET['action']

于 2018-01-08T12:59:56.123 回答