使用当前htaccess文件仅使用公司名称重写URL

时间:2016-10-23 17:51:13

标签: .htaccess url url-rewriting phpfox

首先,我想说我在这里感到非常荣幸。我已经使用了这里给出的答案多年,它为我节省了很多时间。我没有运气地搜索了我当前问题的答案。我相信答案不起作用,因为我将它添加到我当前的.htaccess文件中,这是必需的。我已经在我目前的软件程序(phpfox)论坛中询问,但他们说无法完成。我将把它留给stackoverflow专家告诉我是否可以完成。这是我当前的.htaccess文件

Options -Indexes
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase  /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(file)/(.*) PF.Base/$1/$2
RewriteRule ^static/ajax.php index.php
RewriteRule ^themes/default/(.*) PF.Base/theme/default/$1
RewriteRule ^(static|theme|module)/(.*) PF.Base/$1/$2
RewriteRule ^(Apps|themes)/(.*) PF.Site/$1/$2

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

</IfModule>

以下是此商家页面的网址的三个示例。

域名/目录/细节/ 302 /名称 - 业务 - /概览/

域名/目录/细节/ 302 /名称 - 业务 - /关于我们/

域名/目录/细节/ 302 /名称的业务/联系我们/

我认为你了解情况,但以防这是一个不同的业务。

域名/目录/细节/ 303 /名称 - 业务 - /概览/

现在,对于此业务页面,/ directory / details永远不会更改。 302是此业务的数据库表中记录的主要ID。在同一记录中是商业名称。因此,如果我输入浏览器URL DomainName / directory / detail / 302,即使没有&#34;业务名称/概述&#34;它仍会将我带到主概述页面。在URL的末尾。所以我假设php代码在数据库的url末尾抛出,具体取决于你点击这个特定业务的菜单。

我的梦想是将它归结为

域名/名称的业务的-/概述

DomainName / business-of-business / contact etc ...

但我甚至很乐意至少摆脱目录/细节(我猜这个id&#34; 302&#34;因为它是主要的标识符而只需要猜测)。

域名/ 302 /名称 - 业务 - /概述

我在这里尝试了很多不同的答案,但我觉得我也可能把它放在我当前的.htaccess文件中的错误行。提前感谢您的帮助和时间。

1 个答案:

答案 0 :(得分:0)

尝试:

Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase  /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(file)/(.*) PF.Base/$1/$2
RewriteRule ^static/ajax.php index.php
RewriteRule ^themes/default/(.*) PF.Base/theme/default/$1
RewriteRule ^(static|theme|module)/(.*) PF.Base/$1/$2
RewriteRule ^(Apps|themes)/(.*) PF.Site/$1/$2

# Rewrite DomainName/303/... to DomainName/directory/detail/303/...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d+)(/.*|$) index.php?q=directory/detail/$1$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

</IfModule>

DomainName/303/...重写为DomainName/directory/detail/303/... 但仅适用于外部链接或已在页面中修复