嘿伙计们我正在尝试转换看起来像这样的网址
example.com/sometype/author-name/sort-date 要么 example.com/sometype/author-name/sort-date/something-value /
只需要一个通用的解决方案。
我对这个很陌生,在正则表达式上有点弱。 所以我能写的是识别
sometype。这时候/作者名/排序日期/
或
sometype。这时候/作者名/排序日期/东西值/
/([a-zA-Z0-9] +)/([a-zA-Z0-9] +) - ([a-zA-Z0-9] +)
我想将其重写为此格式
?example.come数据= { “PAR1”: “sometype。这时候”, “作者”: “姓名”, “排序”: “日期”, “东西”: “谷”}
或
?example.come数据= { “PAR1”: “sometype。这时候”, “作者”: “姓名”, “排序”: “日期”}
答案 0 :(得分:0)
首先明白你所问的是非常不寻常的,对于mod_rewrite来说非常棘手。它不仅需要基于递归的代码,而且这些代码也不会非常易读。
使用该注意事项通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
目录下的DOCUMENT_ROOT
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)(.*?)/?$ $1\",\"$2$3 [L]
RewriteRule ^([^-]+)-([^,]+)(.*)$ $1\":\"$2$3 [L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ /?data={\"part1\":\"$1\"} [L]