我正在使用SimpleMVCFramework
我的所有路由都运行正常,基于默认的htaccess文件:
Options -Indexes
<IfModule mod_rewrite.c>
Options -Indexes
RewriteEngine On
RewriteBase /mpl/servicos/smvcf/
# Force to exclude the trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.+)/$ $1 [R=307,L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
</IfModule>
我有一个期望id的路线: http://localhost/mpl/servicos/smvcf/detalhe/37343
但我需要用户认为友好的网址: http://localhost/mpl/servicos/smvcf/mercedes_benz-a-a_220_cdi_auto-37343.html
我认为这样的事情会奏效,但我得到了404:
RewriteRule ([^/]+)-([^/]+)-([^/]+)-([^/]+).html detalhe/$4
请帮忙。
答案 0 :(得分:0)
用户看到漂亮的网址,但您对seo-title的内容不感兴趣。您感兴趣的是隐藏在其中的数字。由于数字位于漂亮网址的后面,所以我们只能匹配:
RewriteRule ^[^/]+-([0-9]+)\.html detalhe/$1 [L]
答案 1 :(得分:0)
如果您尝试使用另一个不会通过默认MVC路由index.php路由的重写,那么您需要确保在这些规则之前放置新的重写。您重定向到的文件夹也需要有一个索引PHP文件来执行某些操作。
subprocess.call