.htaccess modrewrite在扩展所需的GET参数数时失败

时间:2016-01-12 15:33:48

标签: .htaccess mod-rewrite url-rewriting

以下代码适用于获取以下URL路径:

domain.com/file/value并重定向到file.php?page=value

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2 [L]

但是,以下修改不会按照我期望的domain.com/file/value/datestring和重定向到file.php?page=value&date=datestring的方式扩展功能

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2&date=$3 [L]

我尝试了几种组合,似乎没有任何效果,导致404。

任何人都可以帮我看看我错过的东西吗?

1 个答案:

答案 0 :(得分:1)

您没有在重写模式中包含另一个捕获。您需要为重写模式添加另一个捕获组,以便public class PlayerPagerAdapter extends FragmentStatePagerAdapter { //private SparseArray<ElementFragment> registeredFragments = new SparseArray<>(); private ArrayList<ElementFragment> registeredFragments = new ArrayList<>(); /*public void restoreFragment(ArrayList<ElementFragment> registeredFragments, int position) { this.registeredFragments = registeredFragments; notifyDataSetChanged(); switchToItem(position); }*/ public int getFragmentResgisteredCount(){ return registeredFragments.size(); } public PlayerPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return Math.min(registeredFragments.size(),mMaxIndexQuestionAllowed + 1); } public void addItem(ElementFragment elementFragment) { registeredFragments.add(elementFragment); } @Override public Fragment getItem(int position) { return registeredFragments.get(position); } }

three