目前我有这样的网址
域/的index.php?猫=مال_وأعمال
我想进行设置,以便我们的营销人员可以发布网址
domain /مال_وأعمال
我尝试了几种解决方案,包括:
mod_rewrite - 这种方法的问题在于它变成了一个巨大的.htaccess文件,因为我们需要为每个类别编写规则。
RewriteMap - 由于我可以查询数据库以构建输出的地图文件,因此非常接近。但是,我已经知道我们无法访问httpd.conf。
index.php - 我已经尝试通过我们的index.php文件运行所有内容,但是不能保证浏览器中的URL对SEO有用。
我希望有人有另一个可能有所帮助的想法,我真的很感激。如果您在网络上引用了一些有助于实现这一目标的内容。
php .htaccess mod-rewrite seo-friendly
答案 0 :(得分:1)
您可以使用以下规则将URI路径仅包含单个路径段的每个请求映射到 index.php ,同时排除现有文件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+$ index.php?cat=$0 [L]
请注意,您实际上必须请求/مال_وأعمال
将其内部重写为/index.php?cat=مال_وأعمال
。
答案 1 :(得分:0)
首先,您需要创建一个catch all all子域,它将所有请求发送到您的单个VirtualHost:
ServerAlias *.website.com
然后你可以:
答案 2 :(得分:0)
您仍然可以使用mod_rewrite解决方案。诀窍是[L]
参数,意味着在该行之后停止mod_rewriting。假设您有三个页面“index.php”,“about_us.php”和“contact_us.php”,然后是任何他们键入的其他内容,您想要重定向到一个类别。您可以执行以下操作:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule index\.php index.php [L]
RewriteRule about_us(\.php)? about_us.php [L]
RewriteRule contact_us(\.php)? contact_us.php [L]
RewriteRule (.*) index.php?cat=$1
</IfModule>
这样,如果他们转到index.php
(或只是index
),他们会获得index.php文件。如果他们转到about_us.php
(或只是about_us
),他们会获得您的about_us.php文件。但如果他们转到test
(前三行中没有指定),他们会被重定向到index.php?cat=test