diff --git a/reviewboard/hostingsvcs/jira.py b/reviewboard/hostingsvcs/jira.py
index 137b8cb8d7d7cd482c55eaf645ad1c88485e47f7..a3244187d347822c2719bbb050d761334e592f6e 100644
--- a/reviewboard/hostingsvcs/jira.py
+++ b/reviewboard/hostingsvcs/jira.py
@@ -11,6 +11,7 @@ try:
 except ImportError:
     has_jira = False
 
+from reviewboard.admin.validation import validate_bug_tracker_base_hosting_url
 from reviewboard.hostingsvcs.bugtracker import BugTracker
 from reviewboard.hostingsvcs.forms import HostingServiceForm
 from reviewboard.hostingsvcs.service import HostingService
@@ -21,7 +22,8 @@ class JIRAForm(HostingServiceForm):
         label=_('JIRA URL'),
         max_length=64,
         required=True,
-        widget=forms.TextInput(attrs={'size': '60'}))
+        widget=forms.TextInput(attrs={'size': '60'}),
+        validators=[validate_bug_tracker_base_hosting_url])
 
     def clean_jira_url(self):
         return self.cleaned_data['jira_url'].rstrip('/ ')
diff --git a/reviewboard/hostingsvcs/versionone.py b/reviewboard/hostingsvcs/versionone.py
index af4fa41d56261d07907dce0e0a0cc1fae80a1e4b..0dd0bfb42b7b77f619bbc83ea54f80d40cfa3b18 100644
--- a/reviewboard/hostingsvcs/versionone.py
+++ b/reviewboard/hostingsvcs/versionone.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
 from django import forms
 from django.utils.translation import ugettext_lazy as _
 
+from reviewboard.admin.validation import validate_bug_tracker_base_hosting_url
 from reviewboard.hostingsvcs.forms import HostingServiceForm
 from reviewboard.hostingsvcs.service import HostingService
 
@@ -12,7 +13,8 @@ class VersionOneForm(HostingServiceForm):
         label=_('VersionOne URL'),
         max_length=64,
         required=True,
-        widget=forms.TextInput(attrs={'size': '60'}))
+        widget=forms.TextInput(attrs={'size': '60'}),
+        validators=[validate_bug_tracker_base_hosting_url])
 
 
 class VersionOne(HostingService):
