Я надеялся, что кто-то может помочь мне. Я создаю CRM-приложение и нуждаюсь в помощи, изменяя файл .htaccess для очистки URL-адресов. Я прочитал все сообщения, касающиеся .htaccess и mod_rewrite, и я даже попытался использовать http://www.generateit.net/mod-rewrite/ для получения результатов без каких-либо успехов. Вот что я пытаюсь сделать..htaccess mod_rewrite URL запроса
- Давайте назовем базовый URL www.domain.com
- Мы используем PHP с тузда фоновым и некоторыми JQuery и JavaScript
- В этой папке «корневой» мой файл .htaccess. Я не уверен, нужен ли мне файл .htaccess в каждом подкаталоге, или если в корневой папке достаточно.
- У нас есть несколько фактических каталогов файлов, включая «crm», «sales», «finance» и т. Д.
- Прежде всего, мы хотим снять все расширения «.php», которые я могу сделать сам, спасибо на эти должности. Тем не менее, запрос компании и идентификаторы контактов - это место, где я застрял.
- Прямо сейчас, если я загружаю www.domain.com/crm/companies.php он отображает все компании в списке.
- Если я нажму на одну из компаний, она использует javascript для вызова сценария jQuery «goto_company (x)», который записывает форму и передает эту форму на основе идентификатора (x) компании. Это прекрасно работает и сохраняет ссылки в чистоте, поскольку все, кого видит конечный пользователь, - www.domain.com/crm/company.php. Однако вы не можете перейти непосредственно к компании.
- Итак, мы добавили несколько строк в PHP, чтобы узнать, является ли POST нулевым и попробуйте GET, вместо этого разрешив нам сделать www.domain.com/crm/company.php?companyID=40, который отображает компанию № 40 из база данных.
- Мне нужно переписать эту ссылку и все другие связанные ссылки на www.domain.com/crm/company/40
- Я пробовал все, и ничего не работает. Имейте в виду, что мне нужно сделать это для «контактов», а также в части продаж приложения нужно будет что-то сделать для «сделок».
Итак, вот что я ищу делать:
- Изменение www.domain.com/crm/dash.php в www.domain.com/crm/dash
- Изменить WWW. domain.com/crm/company.php?companyID=40 to www.domain.com/crm/company/40
- Изменить www.domain.com/crm/contact.php?contactID=27 на www.domain.com/crm/contact/27
- Изменить www.domain.com/sales/dash.php на www.domain.com/sales/dash
- Изменение www.domain.com/sales/deal.php?dealID=6 к www.domain.com/sales/deal/6
(40, 27 и 6 представляют собой лишь произвольные числа в качестве примеров)
Только для справки, когда я использовал сайт generateit.net/mod-rewrite, используя www.domain.com/crm/company.php?companyID=40, вот что он сказал мне, чтобы я вставлял свои .htaccess файл:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^crm/company/([^/]*)$ /crm/company.php?companyID=$1 [L]
Излишне говорить, что это не сработало.
OK здесь является обновленной на основе справки, полученные от Gohn67 ниже
Он работает за исключением небольшой ошибки я не могу показаться, чтобы выяснить. Я создал файл .htaccess в каталоге «crm». Вот код:
RewriteEngine On
RewriteRule ^test/([\d]+)$ /crm/company.php?companyID=$1 [L]
Это переписывает www.domain.com/test/40 в www.domain.com/crm/company.php?companyID=40 так что это очень близко к тому, что мне нужно.
Ошибка в том, что я не могу заменить «тест» словом «компания» в моем RewriteRule. Я не знаю почему. Я могу положить что-то, кроме слова «компания»; даже имена других файлов PHP в каталоге «crm», такие как «контакт» или «добавочный контакт». В качестве дополнительного теста я на самом деле переименованы company.php в test.php и изменил RewriteRule на:
RewriteRule ^company/([\d]+)$ /crm/test.php?companyID=$1 [L]
, который работал.
Что произойдет, если вы замените '^ CRM/компании/([^ /] *) $' с '^/CRM/компании/([^ /] *) $ '? –
Я попытался добавить «/», как описано выше, но 1), что ничего не меняет, и 2) я прочитал сообщение, в котором указано, что «/» необходимо удалить, как это подразумевается. Я супер-начинающий, когда дело доходит до этого .htaccess-бизнеса, поэтому я не уверен, какой путь прав, а что было неправильно. Все, что я знаю, не работает! – 1001001